消息阻塞解决方案

1. 问题分析

1.1 不合理配置参数

max-concurrency配置过多,超过了2048默认最大channel限制

高流量队列设置prefetch=1

MQ本身没有设置更大的channel限制

多个队列共用一个connection

1.2 消费者中嵌入太多业务

很多业务的处理都冗余在该消费者中

1.3 业务中存在太多数据库、缓存操作

消费者中存在很多数据库操作和缓存操作,毫秒级的网络开销越积越多,影响消费能力

1.4 消费者数量太少

高流量队列应配置对应多的消费者

1.5 MQ主从架构没法支撑更大并发

2. 解决思路

2.1 参数调优

调优生产者客户端参数

调优消费者客户端参数

调优MQ Server参数

2.2 业务调整

精简消费业务

拆分消费业务到细分队列

业务逐步从MQ主从切换到MQ集群

2.3 架构调整

增加消费者

MQ Server主从架构转为MQ server集群架构

搭建多套MQ集群,不同业务使用对应集群

3. 第一阶段