https://www.cnblogs.com/cyfonly/p/5954614.html
RabbitMQ
通过Exchange配置可以决定将消息投递到哪些队列中,也可以配置将消息发送到多个队列,达到一份消息数据被多个订阅者来多次消费
RocketMQ
每个主题(topic)包含多个队列,通过队列来实现多实例并行生产和消费,从而保证在队列上的消息有序性,主题层面是无法保证的;订阅者通过消费组来体现,每个消费组都消费主题中完整的一条消息,不同组之间消费互不影响,但是同一组内的消费者是竞争关系,一条消息被一个消费者消费后,就不能被另一个消费者消费
kafka 内对于rocketMQ中队列的说法是分区partition
消费者组是根据业务,队列数量根据数据量和消费速度来配置,rocketMQ和kafka都支持水平扩容队列数量
生产者的每条消息只会发送到一个topic的一个消息队列里,对于一个消费组,每个队列上只能串行消费,多个队列加一起就是并行消费了,并行度就是队列数量,队列数量越多并行度越大,所以水平扩展可以提升消费性能。
每队列每消费组维护一个消费位置(offset),记录这个消费组在这个队列上消费到哪儿了。consumer和queue不是强关联的,但是在任何一个时刻,