SpringCloud常用组件

SpringCloud常用组件

微服务保护(Sentinel)

Sentinel默认监控SpringMVC下的Controller里的资源,其他资源如service需要被监控的话,需要加注解==@SentinelResource(“resourceName”)==,热点参数限流对默认的SpringMVC资源无效,使用热点参数限流是也需要在对应的资源上添加注解

雪崩问题及解决方案

针对雪崩问题的解决方式:

缓存雪崩的解决方案:

1、流量控制

流控模式:

流控效果

2、线程隔离

3、熔断降级

降级规则主要通过熔断策略实现

4、配置管理模式

CAP原理

分布式系统节点通过网络连接,一定会出现分布问题(p),当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足。

ES集群出现分区时,故障节点会被剔除集群,数据分片会重新分配到其他节点,保证数据一致。因此是低可用性,高一致性,属于CP。

BASE理论

BASE理论是对CAP的一种解决思路,包含三个思想:

Seata架构

事务管理中的三个角色:

四种不同的分布式事务解决方案:

XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。

XA模式

AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式

AT模式由于一阶段执行SQL语句后直接提交事务,释放数据库资源,性能比较好,但由此可能会造成脏读问题。为此引用了全局锁来实现读写隔离

$\textcolor{RED}{AT模式与XA模式最大的区别是什么?}$

TCC模式:最终一致的分阶段事务模式,有业务侵入

TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。需要实现三个方法:

TCC

SAGA模式:长事务模式,有业务侵入

一阶段:直接提交本地事务

二阶段:成功则什么都不做,失败则通过编写补偿业务来回滚

四种模式对比

last update time 2023-08-24