跟我学RocketMq ---为什么选择rocketMq

本文讨论了阿里巴巴在开发RocketMQ时面临的挑战,尤其是与ActiveMQ和Kafka的比较。RocketMQ凭借其出色的低延迟、高可靠性和可扩展性,成为金融级业务消息的标准选择,适用于多种应用场景。
摘要由CSDN通过智能技术生成

Why choose RocketMQ
Why RocketMQ
During the early stages of RocketMQ’s development at Alibaba, we utilized it for a multitude of purposes, including asynchronous communications, search, social networking activity flows, data pipelines, and trade processes. As our trade business grew, we noticed that the messaging cluster was under increasing pressure.

After observing and analyzing the performance of the ActiveMQ IO module, we identified a bottleneck as the number of queues and virtual topics increased. We attempted to address this issue through various methods, such as throttling, circuit breakers, and service downgrades, but none proved satisfactory. We also considered using Kafka, a popular messaging solution, but it did not meet our requirements for low latency and high reliability, as explained below. As a result, we made the decision to develop a new messaging engine capable of handling a wider range of use cases, from traditional pub/sub to high-volume, real-time, zero-error transaction systems.

Since its inception, Apache RocketMQ has been widely adopted by enterprise developers and cloud vendors due to its simple architecture, rich business functionality, and extreme scalability. After more than a decade of extensive scenario polishing, RocketMQ has become the industry standard for financial-grade reliable business messages and is widely used in Internet, big data, mobile Internet, IoT, and other fields.

在阿里巴巴开发RocketMQ的早期阶段,我们将其用于多种用途,包括异步通信、搜索、社交网络活动流、数据管道和交易流程。随着贸易业务的增长,我们注意到消息传递集群承受着越来越大的压力。

在观察和分析ActiveMQ IO模块的性能之后,我们发现了一个瓶颈,即队列和虚拟主题数量的增加。我们试图通过各种方法来解决这个问题,例如节流、断路器和服务降级,但没有一种方法令人满意。我们也考虑过使用Kafka,一个流行的消息解决方案,但它不满足我们对低延迟和高可靠性的要求,如下所述。因此,我们决定开发一种新的消息传递引擎,能够处理更广泛的用例,从传统的发布/订阅到大容量、实时、零错误的事务系统。

自诞生以来,Apache RocketMQ因其简单的架构、丰富的业务功能和极高的可扩展性而被企业开发人员和云供应商广泛采用。经过十多年的广泛场景打磨,RocketMQ已成为金融级可靠商业消息的行业标准,广泛应用于互联网、大数据、移动互联网、物联网等领域。

The following table shows the comparison between RocketMQ, ActiveMQ and Kafka

下表显示了RocketMQ、ActiveMQ和Kafka之间的比较

Ordered Message: 命令消息
Exclusive Consumer or Exclusive Queues can ensure ordering: 独占消费者或独占队列可以确保排序
Ensure ordering of messages within a partition: 确保分区内消息的顺序
Ensure strict ordering of messages,and can scale out gracefully: 确保消息的严格排序,并且可以优雅地向外扩展
Scheduled Message: 预定的消息
Batched Message: 批处理消息
BroadCast Message: 广播消息
Message Filter: 消息过滤器
Supported, you can use Kafka Streams to filter messages: 支持,你可以使用Kafka流来过滤消息
Supported, property filter expressions based on SQL92: 支持基于SQL92的属性筛选表达式
Server Triggered Redelivery: 服务器触发的重发
Message Storage: 消息存储
Supports very fast persistence using JDBC along with a high performance journal,such as levelDB, kahaDB: 使用JDBC和高性能日志(如levelDB、kahaDB)支持非常快速的持久化
High performance file storage: 高性能文件存储
High performance and low latency file storage: 高性能和低延迟的文件存储
Message Retroactive: 信息追溯
Supported offset indicate: 支持偏移量指示
Supported timestamp and offset two indicates: 支持时间戳和偏移量两个表示
Message Priority: 消息优先级
High Availability and Failover: 高可用性和故障转移
Supported, depending on storage,if using levelDB it requires a ZooKeeper server: 支持,取决于存储,如果使用levelDB需要ZooKeeper服务器
Supported, requires a ZooKeeper server: 支持,需要ZooKeeper服务器
Supported, Master-Slave model, without another kit: 支持主从模型,无需另一个工具包
Message Track: 信息跟踪
Configuration: 配置
The default configuration is low level, user need to optimize the configuration parameters: 默认配置为低级别,用户需要优化配置参数
Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically: Kafka使用键值对格式进行配置。这些值既可以从文件中提供,也可以通过编程方式提供。
Work out of box,user only need to pay attention to a few configurations: 开箱即用,用户只需要注意几个配置即可
Management and Operation Tools: 管理和操作工具
Supported, use terminal command to expose core metrics: 支持,使用终端命令公开核心指标
Supported, rich web and terminal command to expose core metrics: 支持,丰富的web和终端命令,以公开核心指标

在这里插入图片描述

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值