Apache RocketMQ官方文档中文精简版-为什么要用RocketMQ?

楚望
2023-12-01

动机

在早期阶段,我们构建了基于ActiveMQ5.x(早于5.3)的分布式消息中间件。我们的跨国企业使用它进行异步通信、搜索、社交网络活动流、数据管道,甚至在其贸易过程中。随着我们的贸易业务吞吐量增加,来自我们的消息传递集群的压力也变得紧迫。

为什么选择Rocketmq?

ActiveMQ IO模块遇到了瓶颈。我们尽力通过节流、断路器或退化来解决这个问题,但效果并不好。不幸的是,Kafka不能满足我们的要求,特别是在低延迟和高可靠性方面

在这种情况下,我们决定发明一个新的消息传递引擎来处理更广泛的用例集,从传统的pub/sub场景到大容量的实时零损失容忍事务系统。我们还发布了一个基于Rocketmq的商业发行版,这是一个名为Alibaba ONS的PaaS产品。

RocketMQ、ActiveMQ和Kafka的比较

MQ产品ActiveMQKafkaRocketMQ
客户端SDKJava, .NET, C++ 等.Java, Scala 等.Java, C++, Go
协议和规范消息推送模式,支持OpenWire, STOMP, AMQP, MQTT, JMS消息拉取模式,支持TCP消息拉取模式,支持TCP,JMS,OpenMessaging
有序消息Exclusive Consumer
或Exclusive Queues
可以确保消息的有序性
确保分区内消息的顺序确保严格的消息顺序,
可以优雅地扩展消息
定时消息支持不支持支持
批处理消息不支持支持,需要async producer支持,使用同步模式来避免消息丢失
广播消息支持不支持支持
消息过滤器支持支持,您可以使用Kafka Streams来过滤消息支持,采用基于SQL92的属性过滤器
服务器触发的重新传递不支持不支持支持
消息存储使用带高性能journal的JDBC数据源,例如levelDB,kahaDB,可以支持非常快速的持久化高性能文件存储高性能和低延迟的文件存储
消息可追溯支持支持偏移量来追溯消息支持时间戳和偏移量两个维度来追溯消息
消息优先级支持不支持不支持
高可用性和故障转移支持,取决于存储。如果使用kahadb,则需要一个zookeeper服务器支持,需要ZooKeeper服务器支持,主从模型,无需其它配套程序
消息追踪不支持不支持支持
配置默认配置为低级别,用户需要优化配置参数Kafka使用键值对格式来进行配置。这些值可以通过文件来提供,也可以通过编程方式提供开箱即用,用户只需要关注很少的配置
管理和操作工具支持支持,提供终端命令支持,提供丰富的网页和终端命令

 

 

 

 

 类似资料: