目录
一. 为什么选择了 RocketMQ ?
在阿里孕育 RocketMQ 的雏形时期,我们将其用于异步通信、搜索、社交网络活动流、数据管道,贸易流程中。随着我们的贸易业务吞吐量的上升,源自我们的消息传递集群的压力也变得紧迫。
根据我们的研究,随着队列和虚拟主题使用的增加,ActiveMQ IO模块达到了一个瓶颈。我们尽力通过节流、断路器或降级来解决这个问题,但效果并不理想。于是我们尝试了流行的消息传递解决方案Kafka。不幸的是,Kafka不能满足我们的要求,其尤其表现在低延迟和高可靠性方面,详见这里。在这种情况下,我们决定发明一个新的消息传递引擎来处理更广泛的消息用例,覆盖从传统的pub/sub场景到高容量的实时零误差的交易系统。
Apache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨,RocketMQ 已经成为业内共识的金融级可靠业务消息首选方案,被广泛应用于互联网、大数据、移动互联网、物联网等领域的业务场景。
二. RocketMQ 介绍
在正式学习使用RocketMQ之前, 要了解几个区别于标准消息中间件的概念. 如Group、Topic、Queue等。
系统组成则由 Producer(生产者)、Consumer(消费者)、Broker(服务代理器)、NameServer(名称服务器)等组件组成。
名词说明
1. Topic (主题)
Topic主题是RocketMQ中消息传输和存储的顶层存储, 表示一类消息的集合. 每个topic 主题包含若干条message . 每条message 只能属于一个topic主题.
可以理解为消息的分类. 但主题是一个逻辑概念,并不是实际的消息容器。现在垃圾都提倡分类了. 消息可不能一个topic干到底啊.
1.1 Topic 核心作用
- 定义数据的分类隔离: 将不同业务类型的数据拆分到不同的主题中管理. 通过主题实现存储隔离性, 订阅隔离性.
- 定义数据的身份和权限 : RocketMQ 本身是匿名无身份的. 同一类的消息使用相同主题来做身份识别和权限管理.

1.2 Topic 常见问题
- Topic 拆分过细, 别有的小伙伴听说是分类用的. 于是把主题拆的很细, 一个用户一个Topic 一笔交易是一个Topic. 太壮观了👍. 这样会消耗大量的主题资源, 造成系统负载过重.
- Topic 拆分过粗, 上面小编写了不能拆分过细, 那么是不是越粗越好呢? 甚至就不拆了. 这样也不好, 会导致业务隔离性差 ,不利于独立运维和故障处理. 遇到问题排查起来会费劲很多.
- Topic 线上开启自动化,RocketMQ提供了自动化创建主题的功能. 在开发阶段用的是一个字

最低0.47元/天 解锁文章
1008

被折叠的 条评论
为什么被折叠?



