消息中间件对比

jasmine 于 2021-12-04 发布
/ RocketMQ RabbitMQ Kafka
所属公司 Alibaba Rabbit Apache
开发语言 Java Erlang Scala
客户端支持语言 Java、C++(不成熟) 几乎支持所有常用语言 官方支持java,开源社区有多种语言赝本
协议支持 自己定义一套 多协议支持:AMQP、XMPP、SMTP、STOMP 自由协议、社区封装了HTTP协议支持
消息批量处理 支持 不支持 支持
消息推拉模式 多协议,pull&push均有支持 多协议,pull&push均有支持 pull
单机吞吐量 十万级 万级 十万级
消息延迟 比Kafka快 微妙级 毫秒级
速度 11.6 w/s 2-5 w/s 17.3 w/s
持久化 磁盘文件 内存、文件,支持数据堆积,单数据堆积反过来影响生产效率 磁盘文件,只要磁盘容量够可以做到无限消息堆积
是否有序 有序 弱项有序智能使用一个Client 多Client保证有序
管理界面 命令行界面 较好 官方提供命令行,yahoo开源Manager
应用场景 金融互联网领域,最求高可靠高可用、高并发、低延迟 通用 日志收集领域

主要对比三个方面:性能、存储、集群

1)性能对比:

2)存储RabbitMQ是内存和文件,RocketMQ和kafka是文件(消息堆积能力强)

3)管理界面,RabbitMQ较好

4)支持语言,RabbitMQ多

5)社区RabbitMQ、kafaka活跃