1.ES采用的是乐观锁机制(带相关的版本号)
2.
3.ES批量导入:_bulk批量导入时,一个的错误不会导致后面的错误,不会像mysql一样,回滚
4.term和match的区别:文本的匹配用match;单个词的匹配,如数值,用term.
5.warning:6.0以后type类型要被抛弃了。
6.在ES中存数据:从数据库中查出,然后封装成bean,发送给ES。ES的查询性能更好。
7.正向代理是面向客户端的(隐藏客户端信息),反向代理是面向服务器的(屏蔽内网服务器信息,负载均衡访问)。
8.如果直接让nginx直接代理服务的话,不用网关产生的问题:
1.第一个问题,服务的数量是随时可以复制添加的,是动态变化的,nginx要动态修改这的配置;如果是让网关来,网关可以动态地从注册中心中搜取服务(服务直接注册进去就行)。
9.nginx代理给网关的时候,会丢失请求的host信息。
可以在location / {
proxy_set_header Host $host;
proxy_pass http://gulimall;
}
10.路由匹配原则:粗粒度的放在后面,精粒度的放在前面
11.
12.
业务的优化:
1.db数据库优化:加索引,多次查的话,可以先把这个的结果查出来,后面子函数重复利用
2.模板的渲染速度,开缓存
13.什么数据适合放入缓存:
1.及时性、数据一致性要求不高的
2.访问量大且更新频率不高的数据(读多,写少)。
14.缓存穿透指的是:查询一个不存在的数据,由于缓存一直不命中,大量请求过来,对数据库大量的查询操作,数据库瞬时压力增大,最终导致崩溃。
解决;null结果缓存,并加入短暂过期时间。
加锁:双重检验,得到锁以后,再次判断redis中是否有数据了。
15.害怕分布式锁一直被一个进程占用(宕机),设置锁的自动过期时间,即使应用没有及时删除,也会自动删除。
16.setnx(站好位置了)设置好后,正要去设置过期时间,宕机。又死锁了。
解决:设置过期时间和占位必须是原子的。redis支持使用setnx ex命令
17.
18.