生产环境消息堆积如何处理?

查看 58|回复 3
作者:fatyoung   
我的想法是
机器配置上:增加分区 partition ,增加组内 consumer ,并最好让分区跟 consumer 数量比例为 1:1
代码上:一般消息堆积都是 consumer 消费逻辑里有长时间 I/O 行为导致,所以可以在 consumer 中开启多线程消费
面试官反问:还有其他方法吗? 还有,如果我想这个分区的消息都可以顺序消费,开启多线程怎么保证顺序消费?
如何回答?

consumer, 分区, 线程, 消费

cyaki   
只用增加 partition 就完事吧, 得注意增加 partition 时, 会暂时性打乱消息顺序.
因为上面这个原因, 所以最好 partition 数量在一开始时就多设置一点
后面消息堆积时, 就只能增加 consumer 就好了
代码上建议保持原样或者缩短长 IO 行为, 不必要引入多线程来增加复杂度
cyaki   
@cyaki 还有增加节点数, 提高整个集群的读写能力上限
cyaki   
@cyaki 还有看消息分布, 是不是集中分布到了部分 parition 上, 导致 consumer 无法处理过来
您需要登录后才可以回帖 登录 | 立即注册

返回顶部