一、分布式事务
1.CAP和BASE
三者不能同时存在。
CP:由于网络分片的存在,如果要保证强一致性就不能写,此时不满足可用性
AP:由于网络分片的存在,如果要保证可用性,能读也能写,就不能保证强一致性。
BASE理论:
2.AT模式原理
添加全局锁,由事务协调者进行记录。只会说由事务协调者管理的事务不能操作这个数据,而其他的还是可以进行操作。
而XA模式开启的是数据库锁,拿到锁后别人不能进行数据库的增删改查任何操作。
其他不由事务协调者管理的事务,可能会出现去修改我们全局锁管理的数据,只是概率很低,预防措施。
AT模式会保存两份快照一个是修改前,一个是修改后。修改后的快照可以判断在第二阶段是否数据进行了修改,进行了就发出警告。
3.TCC模式
4.最大努力通知
分布式事务,解决方案就是避免产生分布式事务
二、注册中心
1.环境隔离
创建命名空间可以有一个唯一标识:
2.分级模型
3.Eureka和Nacos
Eureka得自己启动
使用只需要将依赖更改和配置修改
一般注册中心都会采用AP就是可用性,因为不可用的话注册都注册不了叫什么注册中心。
区别:
nacos对服务的注册发现更加敏感,
三、远程调用
1.负载均衡原理
2.切换负载均衡算法
首先对于负载均衡的配置类进行自定义
再在启动类上添加注解
nacos负载均衡先配置中的集群,再带权重的优先
四、服务保护
1.线程隔离
2.滑动窗口算法
服务保护限流熔断等等需要对请求的数量和线程数量计数
固定从窗口算法
类似于就是将窗口画小,然后每次来请求就看前一个小窗口和自己的窗口是否超过数量
这个算法就是选择多大的小区间,以及多少区间数量
3.漏桶算法
对于超过限额的策略有直接拒绝,快速失败;还有就是让它等待,等待的算法就是:漏桶算法
4.令牌桶算法
热点参数限流方法的底层就是令牌桶算法
令牌桶适合于限流的范围是可动态变换的(生成令牌的速率),成本更低,适合需要有很多限流规则的场景。热点参数限流,不是针对接口进行限流,是针对某一个接口中某一个方法的参数进行限流,可以不同参数进行不同限流,有查询商品的接口,有的商品在进行秒杀,秒杀的商品单独设置限流规则,每一个参数有一个自己的令牌桶。参数的使用上下浮动没有达到整个接口的上限是可以接受的。