消息队列对比

2018-05-11  本文已影响0人  woodwind

引用:

常用消息队列对比
消息队列及常见消息队列介绍

常用消息队列

1. RabbitMQ

用erlang语言开发的消息队列系统,支持很多协议:AMQP,XMPP,SMTP,STOMP。非常重量级,适合企业级开发。核心是生产者不会将消息直接发送给队列,消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)、数据持久化都有很好的支持。

主要特性:

缺点:

2. ActiveMQ

由Apache出品的开源消息队列系统,是一个完全支持JMS 1.1和J2EE 1.4规范的JMS Provider实现。少量代码就可以高效实现高级应用场景,可插拔的传输协议支持。

主要特性:

优点:

缺点:

3. RocketMQ

阿里的开源产品,用Java实现,参照kafka设计思想。

主要特性:

优点:

缺点:

4. ZeroMQ

C语言开发的,号称史上最快的消息队列,专为高吞吐量/低延迟的场景开发,可以在任何平台通过任何代码连接,通过inproc(进程内)、IPC(进程间)、TCP、TIPC、多播传送消息,支持发布-订阅、推-拉、共享队列等模式,高速异步IO引擎。

主要特性:

优点:

缺点:

5. Kafka

Linkedin发布并开源的分布式消息发布订阅系统,现在是Apache的顶级项目

主要特性:

优点:

缺点:

6. CMQ

CMQ(Cloud Message Queue) 是腾讯云基于开源消息引擎自研的一个是分布式消息系统。

主要特性:

其他

比如Redis

MQ对比
-- RabbitMQ ActiveMQ RocketMQ Kafka CMQ
社区/公司 Mozilla Public License Apache 阿里巴巴 Apache 腾讯
开发语言 Erlang Java Java Scala & Java 应该是C++
客户端语言 多语言 多语言 Java,C++ Java为主,语言无关 多语言
协议支持 多协议支持 多协议支持 自定义 Tcp之上自定义 目前HTTP
消息批量操作 不支持 支持 支持 支持 支持
消息推拉模式 Pull,Push Pull,Push Pull,Push Pull Pull,Push
高可用 Master/Slave,master提供服务,slave备份 基于ZooKeeper + LevelDB的MS 支持多M,多MS,异步复制模式,多M多S模式,同步双写 replica机制,leader宕机会重新选举 leader重新选举
数据可靠性 可靠 M/S 可靠 可靠 可靠
单机吞吐量 万级 万级 低十万级 高十万级 高万级
消息延迟 微秒级 - - 毫秒级 毫秒级
持久化能力 内存+文件,堆积量影响生产速率 内存+文件+数据库 磁盘文件 磁盘文件 磁盘
是否有序 单Client有序 可以有序 有序 多Client有序 单Client有序
支持事务 支持 支持 支持 不支持,但是可以通过Low Level API 保证仅消费一次 不支持
集群 支持 支持 支持 支持 支持
负载均衡 支持 支持 支持 支持 支持
管理界面 较好 一般 命令行 官方只有命令行 较好
部署方式 独立 独立 独立 独立 -
适合场景 非海量高可靠 非海量高可靠 海量大规模分布式系统 日志等海量数据流 -
上一篇 下一篇

猜你喜欢

热点阅读