引:前面讲了NameServer,Producer,Consumer,现在终于轮到Broker了,对于一个消息队列来说,Broker是当仁不让的核心~
五大作用
- 存储消息
- 接收生产者提交的消息
- 回复consumer的消息拉取请求
- 主从节点间同步数据保证高可用
- 提供简单的api来查询磁盘上的临时数据
之后我们也将从上面的作用来进行源码的探索!
使用方式
真实使用当然是用命令行去部署,这里为了看源码,我们把环境搭建那篇文章的例子搬过来:
1 | public static void main(String[] args) throws Exception { |
Broker启动
从上面的例子可以看出Broker启动实质就是org.apache.rocketmq.broker.BrokerController
完成初始化和启动的过程。
BrokerController初始化
我们看到org.apache.rocketmq.broker.BrokerController#initialize()
方法:
1 | public boolean initialize() throws CloneNotSupportedException { |
代码逻辑还是非常简单的,一看就知道他在干什么~
BrokerController启动
当BrokerController初始化完成之后,我们看org.apache.rocketmq.broker.BrokerController#start()
方法:
1 | public void start() throws Exception { |
从整个过程来看还是比较简单的,水文一篇,但是后面会继续分析Broker的各个作用的实现。