MQ消息队列选型分析
对比项RabbitMQKafkaRocketMQ基本情况所属公司/组织PivotalApacheApache开发语言ErlangScala、JavaJava默认端口5672909210911使用多语言支持十几种十几种4种API完善完善非常完善与 Spring 集成支持支持支持运维管理控制台自带管理界面无自带管理界面权限管理、安全机制Vhost和UserSSL、SASLTLS...
·
对比项 | RabbitMQ | Kafka | RocketMQ | |
---|---|---|---|---|
基本情况 | 所属公司/组织 | Pivotal | Apache | Apache |
开发语言 | Erlang | Scala、Java | Java | |
默认端口 | 5672 | 9092 | 10911 | |
使用 | 多语言支持 | 十几种 | 十几种 | 4种 |
API | 完善 | 完善 | 非常完善 | |
与 Spring 集成 | 支持 | 支持 | 支持 | |
运维管理控制台 | 自带管理界面 | 无 | 自带管理界面 | |
权限管理、安全机制 | Vhost和User | SSL、SASL | TLS | |
扩展能力 | 支持插件 | |||
文档 | 详细 | 详细 | 案例丰富 | |
社区支持 | 更新快,活跃 | 更新快,活跃 | 更新快,活跃 | |
商业版本 | 阿里云 | 阿里云 | 阿里云 | |
部署难度 | 依赖Erlang | 依赖JDK、ZK | 依赖JDK | |
性能 | 并发性 | Erlang支持,好 | 高 | 高 |
消息延迟 | 毫秒 | 毫秒 | 毫秒 | |
消息吞吐量(2core4GB 内存服务器压测) | 10万级 QPS | 20万级 QPS | 10万级 QPS | |
消息堆积能力 | ||||
功能 | 支持协议 | AMQP、MQTT、STOMP、XMPP | 自定义协议 | JMS |
消费模型 | Push / Pull | Pull | Pull | |
消息过滤 | Topic、Direct | 不支持 | tag | |
消费历史消息 | 不支持 | 支持 | 支持 | |
消息追踪(tracing) | 支持 | 通过拦截器实现 | 支持 | |
消息索引 | 不支持 | 支持 | 支持 | |
事务性消息 | 支持 | 支持 | 支持 | |
顺序性消息 | 不支持 | 不支持 | 支持 | |
消费者重试 | 支持 | 不支持 | 支持 | |
死信队列 | 支持 | 不支持 | 支持 | |
优先级队列 | 支持 | 不支持 | 不支持 | |
延迟队列 | 死信队列或插件 | 不支持 | 开源版18个等级,商业版不限 | |
可用+可靠 | 持久化 | 内存,磁盘 | 磁盘 | 磁盘 |
消息丢失概率 | 低 | 低 | 低 | |
消息重复概率 | 无 | 有 | 无 | |
高可用 | 普通集群和镜像队列 | 分区和副本 | 队列和副本 | |
扩展性 | 差,需要通过HAProxy+Keepalived实现 | 分布式 | 分布式 | |
集群间消息同步 | 支持 | 支持 | 支持 |
如有不足请补充。
更多推荐
所有评论(0)