入门文章:
看了那么多,讲的比较好的: https://m.aliyun.com/yunqi/articles/66110
比较全面的:https://blog.csdn.net/column/details/learningrocketmq.html
rocketmq中的节点
NameServer
NameServer是一个几乎无状态节点,所有人信息都一致,可集群部署,节点之间无任何信息同步。
记录消息元数据在那一个Broker上,通过NameServer将消息发送和消费指定到某一个具体的Broker上。
Broker
Broker 部署相对复杂,Broker分为Master和Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。每个Broker与NameServer集群中的所有节点建立长连接,定时注册 Topic 信息到所有 NameServer。
Producer
Producer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Broker Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。
Consumer
Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
物理部署图:
集群部属 rocketmq 4.3.0
前提:安装 64bit jdk1.8+
机器分配:
192.168.121.129 A nameserver
192.168.121.130 B broker1_master
192.168.121.131 C broker1_slave
192.168.121.132 D broker2_master
192.168.121.143 E broker2_slave
修改hosts
192.168.121.129 A
192.168.121.130 B
192.168.121.131 C
192.168.121.132 D
192.168.121.143 E
下载已经编译的bin-release 版本:
https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.0/rocketmq-all-4.3.0-bin-release.zip
解压:
# unzip rocketmq-all-4.3.0-bin-release.zip
目录说明
benchmark 用于基准测试
bin 可执行的命令
conf 配置文件(包含broker 配置,和日志文件的配置,里面包含了主从同步/异步的配置模板等)
lib 依赖的包
LICENSE
NOTICE
README.md
修改配置 (参考官网配置: http://rocketmq.apache.org/docs/rmq-deployment/)
使用conf/2m-2s-async配置模板(2主2从,异步组刷盘方式):
broker-a.properties
broker