| 1.资料文档 | 网络资料多 | 多,比较新的书比如《RabbitMQ实战指南》 | 有kafka作者自己写的书,较新的书有《Kafka并不难学》 | 网络资料良莠不齐,官方文档比较简洁 | 网络只有代码实现和简单介绍 | 
    
      | 2.开发语言 | java | Erlang | Scala | java | c | 
    
      | 3.支持的协议 | OpenWire、STOMP、REST、XMPP、AMQP | AMQP | 基于TCP 自己定义的一套 | 自己定义的一套 | TCP、UDP | 
    
      | 4.消息存储 | 内存、磁盘、数据库,支持少量堆积 | 内存、磁盘、支持少量堆积 | 内存、磁盘、数据库。支持大量堆积 | 磁盘,支持大量堆积(commitLog文件) 高并发写性能突出(累积4K才强制从pagecache中刷到磁盘) | 消息发送端的内存或者磁盘中,不支持持久化 | 
    
      | 5.消息事务 | 支持 | 支持 | 支持(客户端将信道设置为事务模式) | 支持 | 不支持 | 
    
      | 6.负载均衡 | 支持负载均衡,可基于zookeeper实现负载均衡 | 负载均衡支持不是很好 1.通过交换器和绑定机制可以决定投递的队列,这些多需要手动创建,镜像队列机制可以解决broker负载过大的问题 2.多消费者采用轮询机制,basicQos可以限制信道上的消费者能保持的最大未确认消息数量 3.可借助HAProxy、LVS技术,或者在客户端使用算法实现负载均衡 | 支持负载均衡(大部分是自动完成) | 支持 | 去中心化,不支持负载均衡。本身只是一个多线程网络库 | 
    
      | 7.集群方式 | 支持简单集群模式,简单主备,对高级集群模式支持不好 | 支持简单集群,对高级集群模式支持不好(个人理解:网络是个严重问题,最好部署同一局域网),需要至少一个磁盘节点 | 天然的leader-slave无状态集群,每台服务器既是Master也是Slave。依靠zookeeper | 常用 多对’Master-Slave’ 模式,开源版本需手动切换Slave变成Master。Broker部署相对复杂, slave会从master拉取数据备份 | 去中心化,不支持 | 
    
      | 8.管理界面 | 一般 | 好,自带可视化控制台,亲测操作非常完备 | 一般,有开源工具kafka-eagle | 一搬,有控制台 | 无 | 
    
      | 9.可用性 | 高(主从) | 高(主从) | 非常高(分布式) | 非常高(分布式) | 高 | 
    
      | 10.消息重复 | 支持 at least once | 支持 at least once ,at most once | 支持 at least once ,at most once | 支持 at least once | 只有重传机制,没有持久化,消息丢了重传也没用 | 
    
      | 11.吞吐量 | 比较大 | 比较大 | 极大,按批次发送消息和消费消息 | 大(可以批量消费,不批量发送) | 极大 | 
    
      | 12.订阅形式和消息分发 | 点对点、广播 | direct, topic ,Headers和fanout | 基于topic及按照topic进行正则匹配的发布订阅模式 | 基于topic/messageTag以及按照消息类型、属性进行正则匹配的发布订阅模式 | 点对点 p2p | 
    
      | 13.顺序消息 | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 
    
      | 14.消息确认 | 支持 | 支持 autoAck : false true | 支持 ack : 0,1,all | 支持 | 支持 | 
    
      | 15.消息回溯 | 不支持 | 不支持 | 支持指定分区okkset位置的回溯 | 支持指定时间点的回溯 | 不支持 | 
    
      | 16.消息重试 | 不支持 | 不支持,但是可以利用消息确认机制实现 | 不支持,但是可以实现(支持指定分区offset位置的回溯,可以实现消息重试) | 支持,策略是在消费失败时定时重试,每次时间间隔相同 发送端的send方法的内部重试逻辑: a)至多重试三次 b)如果发送失败,则轮转到下一个broker c)这个方法的总耗时不超过sendMsgTimeout设置的值,默认10s,超过时间不再重试 | 不支持 | 
    
      | 17.并发度 | 高 | 极高(Erlang语言) | 高(消费者中再开启多线程可进一步提高) | 高(基本同kafka) | 高 |