RocketMQ如何实现全局顺序消息?

提问者:帅平 问题分类:面试刷题
RocketMQ如何实现全局顺序消息?
1 个回答
相视而笑
相视而笑
RocketMQ 默认情况下不保证顺序,比如创建一个 Topic ,默认八个写队列,八个读队列,这时候一条消息可能被写入任意一个队列里;在数据的读取过程中,可能有多个 Consumer ,每个 Consumer 也可能启动多个线程并行处理,所以消息被哪个Consumer 消费,被消费的顺序和写人的顺序是否一致是不确定的。
要保证全局顺序消息, 需要先把 Topic 的读写队列数设置为 一,然后ProducerConsumer 的并发设置,也要是一。简单来说,为了保证整个 Topic全局消息有序,只能消除所有的并发处理,各部分都设都设置成单线程处理 ,这时候就完全牺牲RocketMQ的高并发、高吞吐的特性了。
发布于:4周前 (08-21) IP属地:四川省
我来回答