Tedu RocketMQ五阶段详解:流控与熔断策略
"Tedu五阶段RocketMQ教程,涵盖了流控规则和熔断规则的详细解析。" 在Tedu五阶段的RocketMQ学习中,我们主要关注的是如何有效地管理和控制消息队列的流量以及应对系统故障时的保护机制。RocketMQ是阿里巴巴开源的一款分布式消息中间件,它具有高吞吐量、低延迟、高可用性和可扩展性等特性,广泛应用于大型分布式系统中。 1. **流控规则详解** - **resource**:定义了规则所绑定的资源ID名称,即需要进行流量控制的特定服务或接口。 - **count**:限流阈值,当grade为1时,表示QPS(每秒请求数)的上限;当grade为0时,表示并发量的上限。 - **grade**:限流类型,1代表QPS类型的限流,0代表并发类型的限流。 - **strategy**:限流策略,决定如何执行限流。0表示直接限制,1表示关联限流,2表示链路限流。 - **limitApp**:指定限流针对的调用来源,与strategy配合使用,用于区分不同来源的流量。 - **controlBehavior**:限流效果,0表示直接拒绝,1表示Warmup(预热限流),2表示排队等待。 示例中的流控规则表明,对于`addOrder`资源,当QPS达到1时,会限制`queryOrder`的调用,且若超出限制将直接拒绝请求。 2. **熔断规则** - **DegradeRule**:熔断规则的对象,用于定义在系统负载过高或出现异常时,如何“断路”以保护系统整体稳定性。 - **count**:熔断触发的失败次数阈值。 - **grade**:熔断级别,2表示基于异常比例的熔断。 - **timeWindow**:熔断持续的时间窗口,单位通常是毫秒。 - **minRequestAmount**:在统计窗口内,至少需要多少个请求才能启动熔断计算。 - **slowRatioThreshold**:慢调用比例阈值,当慢调用比例超过这个阈值时,触发熔断。 - **statIntervalMs**:统计间隔时间,单位为毫秒。 测试环境中,对`sayHiService`资源设定了熔断规则,当异常比例超过50%,并且在过去10秒内的请求量至少达到1次时,会启动熔断。 3. **应用场景** - **demo03测试**:对原有的资源`addOrder`不做流控限制,保持正常服务。 - **熔断策略**:在系统出现问题时,对`sayHiService`进行熔断,防止问题扩散,保护系统全局稳定。 以上内容展示了RocketMQ如何通过流控和熔断规则来保障服务的稳定性和性能。通过对这些规则的精细调整,开发者可以有效地管理系统的流量,预防过载,并在出现问题时快速响应,降低影响。
![](https://csdnimg.cn/release/download_crawler_static/88846151/bg4.jpg)
剩余17页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)