消息中间件对比和选型

现在市面上的消息中间件种类很多,常用的大致有4种,分别是kafka、activemq、rabbitmq、rocketmq。 那么kafka、activemq、rabbitmq、rocketmq都有什么优缺点?怎么技术选型呢?

1. 对比

特性 activemq rabbitmq rocketmq kafka
单机吞吐量 万级 万级 10万级 10万级
topic数量对吞吐量的影响 无影响 无影响 topic 可以达到几百/几千的级别,吞吐量会有较小幅度的下降 topic 从几十到几百个时候,吞吐量会大幅度下降,在同等机器下,kafka 尽量保证 topic 数量不要过多
消息存储 内存、磁盘、数据库。支持少量堆积 内存、磁盘。支持少量堆积 磁盘。支持大量堆积 内存、磁盘、数据库。支持大量堆积
消息事务 支持 支持 支持 支持
消息延时 ms 级 微秒级 ms 级 ms 级
可用性 高 (主从) 高 (主从) 非常高 (分布式) 非常高 (分布式)
消息可靠性 可能会丢失 可能会丢失 不会丢失 不会丢失
多语言支持 支持 支持 只支持java 支持
生产者消费者模式 支持 支持 支持 支持
发布订阅模式 支持 支持 支持 支持
请求回应模式 支持 支持 不支持 不支持
管理界面 一般 一般
消息重复 最少一次 最少一次
最多一次
最少一次 最少一次
最多一次

2. 参考

消息中间件对比

文章目录
  1. 1. 1. 对比
  • 2. 参考
  • |