springcloud中的零碎知识

1.ES采用的是乐观锁机制(_seq_no并发控制字段)

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.

19.redisson中有看门狗机制,默认锁的过期时间是30s。为了方式业务还在执行过程,锁过期了的问题,我自己的理解(在java后端执行了监听器,每隔internalLockLeaseTime/3后向redis发送延长时间的命令)。

20.redisson中自己设定了过期时间,不会自动续期

21.

 

22.

 

23.

双写模式:在数据库中改了数据,并且改写缓存中的数据

失效模式:在数据库中改了数据,并且删掉缓存中的数据

24.

 

25.ES的扁平化,不加嵌入式的话(nested),会被扁平化处理

26.线程的话,需要创建线程池,不然业务请求一多,创建的线程数一多,资源容易耗尽,宕机。

27.

 

28.

 

29.

 

 30.

 

 31.

 

 32.消息队列rabbitMQ,可以应用解耦,流量控制

33.

 

34.feign远程调用丢失请求头问题

  设置requestInterceptor配置

35.threadlocal是线程独占的

36.feign异步情况丢失上下文问题

 

37.

 

 

 

 38.本地事务的话

 

 

  解决:利用延时队列

39.

 

40.主从呢:

主要跟从保持心跳连接,因为从一直在自旋,要初始化从的自旋(变为候选者)。(自旋成功,说明没有主节点了,自己升为候选人,重新选举主节点)。

上面这个是raft算法解决cp问题的方案

41.BASE理论可以适当地采取弱一致性,即最终一致性。

42.分布式事务Seata不适合高并发

43.rabbitMQ延时队列:rabbitmq的消息TTL和死信Exchange(这个队列没有人监听的,消息存活时间到了,exchange再把这个消息转给另一个有人监听的队列)结合。

44.

 

 

 

 45.消息丢失、消息重复

46.Eureka保证的是AP,Zookeeper保证的是CP。

47.ribbon(发现服务上(相同的))轮询算法

48.feign是结合了ribbon,以接口和注解的方式实现。

49.服务熔断:就是当某个服务调用某个服务失败时,反馈简单的信息)(服务器端

50.服务降级:(当某个服务访问量大时,可以先关闭其它小服务)(客户端)

51.跨域流程

 

 52.

 

53.ElasticSearch对于已经存在的映射字段,我们不能更新。更新必须创建新的索引进行数据迁移。

54.rabbitMQ好处:异步处理,应用解耦,流量控制

55.幂等性解决方案:

  1.token机制:哪些业务是存在幂等问题的,就必须在执行业务前,先去获取token,服务器会把token保存到redis中。lua脚本

  2.各种锁机制

  3.各种约束条件:数据库唯一约束、redis set防重、防重表、全局请求唯一id

56.

 

 

57.BASE理论:基本可用、软状态、最终一致性

58.

 

 

 

 59.

posted @ 2021-08-17 17:45  所在丶  阅读(48)  评论(0编辑  收藏  举报