English|中文
MQ目前在微服务系统中的被越来越多的服务使用,甚至出现在一些核心链路中。 但是MQ的稳定性,就需要很好的保证。 对于开发者而言,针对MQ的服务稳定性,能做的便是MQ出现问题时,能否尽可能的降低对服务的影响,尤其是核心链路上的业务。 常用的MQ稳定性保障方案:多集群部署、降级传输等。
当前便是针对于降级传输所做的方案。主要针对于开发侧做的MQ稳定性保障。
降级传输的方案常用的有两种实现方式:推模式、拉模式。
- 一、推模式(基于MQ的生产者)
推模式,就是MQ生产者将消息推送给MQ,MQ将消息推送给消费者。当MQ服务异常时,生产者通过降级传输到其他渠道给到消费者。
例如:当MQ异常时,生产者自动将消息通过HTTP/RPC接口的形式通知到消费者。
优点: 改造简单,不易形成尖刺,稳定性相对较高,可设置自动降级触发(自定义降级规则)无需人工介入。
缺点: MQ消费QPS受限于存储的QPS,流量高时会出现QPS超限。
- 二、拉模式(基于MQ的消费者)
拉模式,就是消费者从MQ拉取消息。当MQ服务异常时,消费者通过生产者提供的接口主动的拉取数据到消费者的服务中。
当前针对于推模式的通用中间件的实现为mq-degrade-send-spring-boot-starter.使用此中间件可以以最小的侵入性,快速的实现MQ的降级传输功能。
推模式降级 接入指南:MQ降级传输-推模式(接入指南)