Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions versioned_docs/version-5.0/01-introduction/01whychoose.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ Apache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具

## RocketMQ vs. ActiveMQ vs. Kafka

| Messaging Product|Client SDK| Protocol and Specification | Ordered Message | Scheduled Message | Batched Message |BroadCast Message| Message Filter|Server Triggered Redelivery|Message Storage|Message Retroactive|Message Priority|High Availability and Failover|Message Track|Configuration|Management and Operation Tools|
| -------|--------|--------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
| ActiveMQ|Java, .NET, C++ etc. |Push model, support OpenWire, STOMP, AMQP, MQTT, JMS|Exclusive Consumer or Exclusive Queues can ensure ordering|Supported|Not Supported|Supported|Supported|Not Supported|Supports very fast persistence using JDBC along with a high performance journal,such as levelDB, kahaDB|Supported|Supported|Supported, depending on storage,if using levelDB it requires a ZooKeeper server|Not Supported|The default configuration is low level, user need to optimize the configuration parameters|Supported|
| Kafka | Java, Scala etc.|Pull model, support TCP|Ensure ordering of messages within a partition|Not Supported|Supported, with async producer|Not Supported|Supported, you can use Kafka Streams to filter messages|Not Supported|High performance file storage|Supported offset indicate|Not Supported|Supported, requires a ZooKeeper server|Not Supported|Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically.|Supported, use terminal command to expose core metrics|
| RocketMQ |Java, C++, Go |Pull model, support TCP, JMS, OpenMessaging|Ensure strict ordering of messages,and can scale out gracefully|Supported|Supported, with sync mode to avoid message loss|Supported|Supported, property filter expressions based on SQL92|Supported|High performance and low latency file storage|Supported timestamp and offset two indicates|Not Supported|Supported, Master-Slave model, without another kit|Supported|Work out of box,user only need to pay attention to a few configurations|Supported, rich web and terminal command to expose core metrics|
| 消息产品 | 客户端SDK | 协议和规范 | 有序消息 | 定时消息 | 批量消息 | 广播消息 | 消息过滤 | 服务器触发的重传 | 消息存储 | 消息追溯 | 消息优先级 | 高可用性和故障转移 | 消息跟踪 | 配置 | 管理和操作工具 |
| -------- | ----------------- | ---------------------------------------------- | ------------------------------------ | -------- | -------------------------------- | -------- | ----------------------------------- | ---------------- | ------------------------------------------------------------ | -------------------------- | ---------- | ------------------------------------------------------ | -------- | ------------------------------------------------------------ | -------------------------------------- |
| ActiveMQ | Java, .NET, C++等 | 推送模型,支持OpenWire, STOMP, AMQP, MQTT, JMS | 独占消费者或独占队列可以确保顺序 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 支持使用JDBC的非常快速的持久化以及高性能日志,例如levelDB, kahaDB | 支持 | 支持 | 支持,取决于存储,如果使用levelDB则需要ZooKeeper服务器 | 不支持 | 默认配置较低级,用户需要优化配置参数 | 支持 |
| Kafka | Java, Scala等 | 拉取模型,支持TCP | 确保分区内消息的顺序 | 不支持 | 支持,使用异步生产者 | 不支持 | 支持,可以使用Kafka Streams过滤消息 | 不支持 | 高性能文件存储 | 支持偏移量指示 | 不支持 | 支持,需要ZooKeeper服务器 | 不支持 | Kafka使用键值对格式进行配置。这些值可以从文件或以编程方式提供 | 支持,使用终端命令暴露核心指标 |
| RocketMQ | Java, C++, Go | 拉取模型,支持TCP, JMS, OpenMessaging | 确保消息严格有序,并且可以优雅地扩展 | 支持 | 支持,使用同步模式以避免消息丢失 | 支持 | 支持,基于SQL92的属性过滤表达式 | 支持 | 高性能和低延迟的文件存储 | 支持时间戳和偏移量两种指示 | 不支持 | 支持,主从模式,无需其他工具 | 支持 | 开箱即用,用户只需关注少量配置 | 支持,丰富的网页和终端命令暴露核心指标 |