微服务 · 如何进行服务限流和熔断

本文探讨了微服务架构中的服务雪崩问题及其解决方案——服务限流和熔断。介绍了计数器、漏桶和令牌桶三种限流算法,并详细阐述了服务熔断的概念。此外,还提到了Netflix的Hystrix框架在服务容错中的作用,以及如何通过Hystrix实现服务的隔离、故障恢复和优雅降级。
摘要由CSDN通过智能技术生成

一、服务雪崩

​ 微服务架构是将单个应用程序被划分成各种小而连接的服务,每一个服务完成一个单一的业务功能。相对于传统的单体服务,微服务具有隔离性、技术异构性、可扩展性以及简化部署等优点。通常一个应用由多个微服务组成,微服务之间的数据交互需要通过远过程调用的方式完成。

​ 下图是一个微服务之间互相调用的场景:

service-avalanche.png

​ 微服务A调用微服务B、C和D,微服务C又调用微服务E。假设某一时刻,微服务E变为不可用。微服务C需要等待微服务E返回结果,于是请求就会逐渐堆积在微服务C,形成阻塞。随着微服务C堆积的请求不断增加,微服务A也会随之慢慢阻塞。因为服务器所能支撑的并发数有限,所以最终会耗尽服务器资源,从而导致调用链条上更多的微服务不可用,形成雪崩效应。这种由一个服务崩溃导致整条服务链崩溃的情况,我们就称之为服务雪崩。

​ 在微服务架构中,通常有两种情况会导致服务雪崩:

  1. 突发性的访问量剧增,超出了服务处理极限

  2. 调用链条上某个服务出现故障或者响应慢(延迟)

    针对以上这两种情况,产生了对应的解决方案:服务限流和服务熔断。

二、 服务限流

​ 服务限流是指在一定时间段内限制服务的请求量以保护系统,主要用于防止突发流量而导致的服务崩溃,比如秒杀、抢购、双十一等场景,也可以用于安全目的,比如应对外部暴力攻击。

​ 常用的限流算

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值