目前主流的MQ主要是RocketMQ、kafka、RabbitMQ。
RocketMQ 相比于 RabbitMQ、kafka 具有主要优势特性有:
- 支持事务型消息(消息发送和DB操作保持两方的最终一致性,RabbitMQ 和kafka 不支持)
- 支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
- 支持18个级别的延迟消息(RabbitMQ 和 kafka 不支持)
- 支持指定次数和时间间隔的失败消息重发(kafka不支持,RabbitMQ 需要手动确认)
- 支持 consumer 端 tag 过滤,减少不必要的网络传输(RabbitMQ 和 kafka不支持)
- 支持重复消费(RabbitMQ 不支持,kafka支持)
kafka、RocketMQ、RabbitMQ 的详细对比,请参照下表格: