Sentinel熔断降级

分布式系统越来越流行,服务之间的可靠性、可用性越来重要。Sentinel 是面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来帮助您保障微服务的稳定性。

下面以客户端基础服务为例,阐述接入公司sentinel熔断实现流量控制、熔断降级为例。客户端基础服务处于公司业务链路中属于中间环节,既要对来自上游开放平台的请求流量控制,又要对下游基础服务的异常进行熔断降级。
1、流量控制
原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。详细请参考:
https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6
注解形式+QPS+快速失败:加入注解,自定义限流后的blockHandler方法。
在这里插入图片描述
在这里插入图片描述
配置:
在这里插入图片描述
效果:
可以从sentinel Dashboard上看QPS限制在50,从日志上查看进入自定义blockHandler方法。
在这里插入图片描述
在这里插入图片描述

2、熔断降级
注解形式+RT:加入注解,自定义降级后的fallback方法。
平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 5 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出 DegradeException)。详细请参考:https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7
在这里插入图片描述
在这里插入图片描述
配置:
在这里插入图片描述
效果:从日志上查看进入自定义fallBack方法
在这里插入图片描述

常见问题总结:
问题一:jar包冲突,sentinel的流控和降级注解不生效,冲突jar如下:
解决方案:合理排除掉冲突jar,客户端基础服务选择的保留高版本jar。
问题二:Apollo上未新增sentinel命名空间,流控和降级注解不生效。
解决方案:Apollo是sentinel规则持久化的形式,需要在项目中配置sentinel及在Apollo上新增sentinel命名空间。
问题三:使用@SentinelResoure注解同时配置blockHandler和fallback,会导致fallback不生效。
解决方案:注解中blockHandler和fallback分开。
问题四:dubbo超时时间会导致降级方法fallback不生效。
解决方法:若要进入降级方法,降级规则中RT时长要小于dubbo的超时时间。

本次客户端基础服务使用了sentinel最基本的功能限流和降级,sentinel有很多其他功能,比如:网管流控、白名单等功能,都在特定的业务场景下使用的。希望以上的分享对后面接入sentinel熔断的x小伙伴有所帮助或避坑。

作者简介:就职于甜橙金融信息技术部,负责服务端开发,专注于微服务、分布式、性能调优、高可用,欢迎各位同仁沟通交流。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Sentinel熔断降级限流是一种用于保护应用程序的机制,它可以防止应用程序不断执行可能失败的操作,并快速拒绝可能导致错误的调用。熔断降级规则是熔断降级机制的核心属性之一。\[1\] 熔断降级规则的配置可以通过在应用程序中设置相关属性来实现。例如,在Spring Cloud中,可以通过配置`spring.cloud.sentinel.transport.dashboard`属性来指定Sentinel控制台的地址,以及通过`management.endpoints.web.exposure.include`属性来开放管理端点。\[2\] 熔断降级机制的作用是在感知到下游服务的资源出现不稳定状态时,暂时切断对下游服务的调用,而不是一直阻塞等待服务响应。这样可以防止级联失败导致的雪崩效应,并保证系统的可用性。在微服务架构下,熔断降级机制尤为重要,可以保护后端不会过载。\[3\] 熔断降级规则包含一些核心属性,可以根据具体需求进行配置。这些属性包括但不限于超时时间、异常比例、最小请求数等。当资源被熔断降级后,在降级时间窗口内,对该资源的调用会自动返回降级数据。当检测到该节点的服务调用响应正常后,熔断机制会恢复调用链路。\[3\] 总结来说,Sentinel熔断降级限流是一种保护应用程序的机制,通过设置熔断降级规则来防止应用程序执行可能失败的操作,并在下游服务资源不稳定时暂时切断对下游服务的调用。这样可以防止级联失败导致的雪崩效应,并保证系统的可用性。熔断降级规则包含一些核心属性,可以根据具体需求进行配置。\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [sentinel 限流熔断神器详细介绍](https://blog.csdn.net/a745233700/article/details/122733366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Sentinel服务流控、熔断降级](https://blog.csdn.net/m0_49183244/article/details/124273538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值