系列文章目录
目录
前言
- 服务容错的背景
服务容错是典型的高并发带来的问题。在复杂的网络环境中微服务架构之间的通信结果通常是难以预计的。如果没有隔离措施,由于服务与服务之间的依赖性,当前的应用服务就可能会由于服务之间一层层积累的错误引发服务雪崩,最终导致服务瘫痪。
一、服务容错的常见方案
- 超时:在调用方,一定时间内未得到响应则放弃请求。
- 限流:在提供方,限制进入系统的流量。
- 仓壁模式:在调用方使用线程池隔离,信号量隔离等方式,按一定的规则隔离系统。
- 熔断器: 顾名思义,在调用方,发现故障后自动熔断。恢复正常后再次启用。
二、sentinel的服务容错实例
1.启动sentinel-dashboard
#直接-jar jar包
2.创建controller
发送请求,自动识别到簇点链路进行配置。
@GetMappring("test")
public String test(){
return "success";
}
3.配置通信地址
spring:
application:
name:
cloud:
sentinel:
transport:
dashboard: # 控制面板的地址
clientIp: # 本应用的IP
port: # 本应用的通信端口
eager: true
4.方案测试
- 流控
- 熔断