微服务架构下的 服务熔断, 降级, 限流

微服务架构中,服务间的依赖可能导致雪崩效应,即一个服务的故障引起连锁反应,严重影响系统稳定性。为防止这种情况,文章介绍了服务隔离、熔断、降级和限流等策略。服务隔离通过划分独立模块降低故障传播;熔断在下游服务故障时切断调用,保护整体可用性;服务降级提供默认值或回退方案;限流则限制流量以确保系统稳定。SpringCloud Hystrix和Sentinel是实现这些策略的工具。
摘要由CSDN通过智能技术生成

微服务架构下存在的 '雪崩' 问题

在微服务架构中, 一个请求需要调用多个服务是非常常见的. 如客户端访问订单服务, 而订单服务需要调用库存服务, 库存服务需要调用配送服务, 由于网络原因或者自身的原因, 如果订单服务或者配送服务不能及时响应, 订单服 务将处于阻塞状态, 直到库存服务配送服务响应. 此时若有大量的请求涌入, 容器的线程资源会被消耗完毕, 导致服务瘫痪. 服务与服务之间的依赖性, 故障会传播, 造成连锁反应, 会对整个微服务系统造成灾难 性的严重后果, 这就是服务故障的“雪崩”效应.

雪崩效应是微服务架构中一定存在的问题, 雪崩是系统中的蝴蝶效应导致其发生的原因多种多样, 有不合理的容量设计, 或者是高并发下某一个方 法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头的发生, 但是雪崩的根 本原因来源于服务之间的强依赖, 所以我们可以提前评估, 做好 隔离,熔断, 限流.

服务隔离

顾名思义, 它是指将系统按照一定的原则划分为若干个服务模块, 各个模块之间相对独立, 无强依赖. 当有故障发生时, 能将问题和影响隔离在某个模块内部, 而不扩散风险, 不波及其它模块, 不影响整体 的系统服务.

服务熔断

熔断这一概念来源于电子工程中的断路器(Circuit Breaker). 在互联网系统中, 当下游服务因访问压 力过大而响应变慢或失败, 上游服务为了保护系统整体的可用性, 可以暂时切断对下游服务的调用. 这 种牺牲局部, 保全整体的措施就叫做熔断.

服务降级

所谓降级, 就是当某个服务熔断之后, 服务器将不再被调用, 此时客户端可以自己准备一个本地的 fallback回调, 返回一个缺省值. 也可以理解为兜底~

熔断和降级通常是一起发生的, 两者目的都是为了保持自身服务的可用性, 在其它服务存在问题时而不会发起调用.

</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值