前言
- 重磅 | Sentinel 成为 Spring Cloud 官方推荐的主流熔断降级方案 近日,Sentinel 贡献的 spring-cloud-circuitbreaker-sentinel 模块正式被Spring Cloud社区合并至 Spring Cloud Circuit Breaker,由此,Sentinel 加入了 Spring Cloud Circuit Breaker 俱乐部,成为 Spring Cloud 官方的主流推荐选择之一。这意味着,Spring Cloud 微服务的开发者在熔断降级领域有了更多的选择,可以更方便地利用 Sentinel 来保障微服务的稳定性。 来源:https://developer.aliyun.com/article/699979 官方介绍:限流熔断技术选型:从Hystrix到Sentinel
- Sentinel 的优势和特性:
- 轻量级,核心库无多余依赖,性能损耗小。
- 方便接入,开源生态广泛。Sentinel 对 Dubbo、Spring Cloud、Web Servlet、gRPC 等常用框架提供适配模块,只需引入相应依赖并简单配置即可快速接入;同时针对自定义的场景 Sentinel 还提供低侵入性的注解资源定义方式,方便自定义接入。
- 丰富的流量控制场景。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,流控维度包括流控指标、流控效果(塑形)、调用关系、热点、集群等各种维度,针对系统维度也提供自适应的保护机制。
- 易用的控制台,提供实时监控、机器发现、规则管理等能力。
- 完善的扩展性设计,提供多样化的 SPI 接口,方便用户根据需求给 Sentinel 添加自定义的逻辑。
怎么使用?
怎么使用,看的是简书后羿大佬的教程:https://www.jianshu.com/u/51121bddcd2a
- Sentinel 原理-全解析https://www.jianshu.com/p/0e218ef7f505
- Sentinel 原理-调用链https://www.jianshu.com/p/5a468b6a07fe
- Sentinel 原理-滑动窗口https://www.jianshu.com/p/6ee4b7bdb844
- Sentinel 原理-实体类https://www.jianshu.com/p/4a19f675ef5f
- Sentinel 实战-控制台篇https://www.jianshu.com/p/c47dfd25eeee
- Sentinel 实战-规则持久化https://www.jianshu.com/p/609961eb6a6e
- Sentinel 实战-集群限流篇https://www.jianshu.com/p/a52bf4073873
- Sentinel 实战-限流篇https://www.jianshu.com/p/3b8d259666d9
遇到的问题
- 客户端在控制台不显示,控制台自己可以显示 参考文档: 没有成功 没有成功 没有成功 报错信息:java java.util.ServiceConfigurationError: com.alibaba.csp.sentinel.transport.HeartbeatSender: Provider com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender could not be instantiated 客户端启动成功后,第一次发送请求,进行注册,注册失败。 搜索了一上午,下午又搜索了1个半小时,各种尝试,终于解决了!!!
- 解决办法https://github.com/alibaba/Sentinel/wiki 从官方wiki里面找到spring cloud的demo。
- 启动类上面标注了jvm启动参数。如果和自己本地的控制台地址没错,那就可以直接启动。启动成功后,访问controller里面的请求,发送心跳进行注册。(ps:可以把dubbo service删掉,只是测试注册的话,可以不用)。
- 发送完毕,没有报错。这时候刷新控制台,即可看到新增的服务,以及其相关配置。仿照这个,把自己其他的服务加进去就可以了。 传送门:springboot集成sentinel控制台