Kafka、RabbitMQ、RocketMQ消息中间件的对比
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,目前对Kafka、RabbitMQ、RocketMQ这三个消息中间件做下对比分析。 - - kafka RocketMQ RabbitMQ 数据来源 相关文章 定位 设计定位 系统间的数据流管道,实时数据处理。 例如:常规的消息系统、网站活性跟踪,监控数据,日志收集、处理等 非日志的可靠消息传输。 例如:订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等 可靠消息传输。和RocketMQ类似。 基础对比 成熟度 日志领域成熟 成熟 成熟 所属社区/公司 Apache Alibaba开发,已加入到Apache下 Mozilla Public License 社区活跃度 高 中 高 来源于网络 API完备性 高 高 高 文档完备性 高 高 高 来源于网络 开发语言 Scala Java Erlang 支持协议 一套自行设计的基于TCP的二进制协议 自己定义的一套 (社区提供JMS--不成熟) AMQP 客户端语言 C/C++、Python、Go、Erlang、.NET、Ruby、Node.js、PHP等 Java Java、C、 C++、 Python、 PHP、Perl 等 持久化方式 磁盘文件 磁盘文件 内存、文件 可用性、可靠性比较 部署方式 单机/集群