
# 与Kafka、RabbitMQ的差异
表1功能差异 
| 功能项     | RocketMQ             | Kafka                                       | RabbitMQ                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| 优先级队列   | 不支持                  | 不支持                                         | - 3.x.x版本：支持。建议优先级大小设置在0-255之间。  - AMQP-0-9-1版本：支持。优先级大小设置在1-9之间。     |
| 延迟队列    | 支持                   | 不支持                                         | - 3.x.x版本：不支持。  - AMQP-0-9-1版本：支持。                                          |
| 死信队列    | 支持                   | 不支持                                         | 支持                                                                                                                                                                                                                       |
| 消息重试    | 支持                   | 不支持                                         | - 3.x.x版本：不支持。  - AMQP-0-9-1版本：支持。                         |
| 消费模式    | 支持客户端主动拉取和服务端推送两种方式。 | 客户端主动拉取。                                    | 支持客户端主动拉取和服务端推送两种模式。                                                                                                                                                                                                     |
| 广播消费    | 支持                   | 支持                                          | 支持                                                                                                                                                                                                                       |
| 消息回溯    | 支持                   | 支持。Kafka支持按照offset和timestamp两种维度进行消息回溯。     | - 3.x.x版本：不支持。RabbitMQ中消息一旦被确认消费就会被标记删除。  - AMQP-0-9-1版本：支持。   |
| 定时消息    | 支持                   | 不支持                                         | 不支持                                                                                                                                                                                                                      |
| 消息堆积    | 支持                   | 支持。考虑吞吐因素，Kafka的堆积效率比RabbitMQ总体上要高。         | 支持                                                                                                                                                                                                                       |
| 持久化     | 支持                   | 支持                                          | 支持                                                                                                                                                                                                                       |
| 消息追踪    | 支持                   | 不支持                                         | - 3.x.x版本：不支持。  - AMQP-0-9-1版本：支持。                                    |
| 消息过滤    | 支持                   | 支持                                          | - 3.x.x版本：不支持，但可以自行封装。  - AMQP-0-9-1版本：支持。                   |
| 多租户     | 支持                   | 支持                                          | 支持                                                                                                                                                                                                                       |
| 多协议支持   | 兼容RocketMQ协议。        | 只支持Kafka自定义协议。                              | RabbitMQ基于AMQP协议实现。                                                                                                                                                                                                      |
| 跨语言支持   | 支持多语言的客户端。           | 采用Scala和Java编写，支持多种语言的客户端。                  | 支持多种语言的客户端。                                                                                                                                                                                                              |
| 自定义流量控制 | 不支持                  | 支持client、user和Topic级别，通过主动设置可将流控作用于生产者或消费者。 | 不支持                                                                                                                                                                                                                      |
| 消息顺序性   | 单队列（queue）内有序。       | 支持单分区（partition）级别的顺序性。                     | 单线程发送、单线程消费并且不采用延迟队列、优先级队列等一些高级功能时，才能实现消息有序。                                                                                                                                                                             |
| 安全机制    | 支持SSL认证。             | 支持SSL、SASL身份认证和读写权限控制。                      | - 3.x.x版本：支持SSL认证。  - AMQP-0-9-1版本：支持ACL访问控制。                       |
| 事务性消息   | 支持                   | 支持                                          | - 3.x.x版本：支持。  - AMQP-0-9-1版本：不支持。                            |
   
