- 多个broker提供服务(避免单机宕机之后消息无法被即使消费);
- 多个master(主)多个slave(从)
- master到slave消息方式为同步(较异步方式性能略低,消息无延迟);
- master到slave消息方式为异步(较同步方式性能略高,数据有延迟)。
一. RocketMQ集群的工作流程
- NameServer启动,开始监听,等待broker,producer和consumer连接;
- broker启动,根据配置信息,连接所有的NameServer,并保持长连接,如果broker中有现存数据,NameServer将保存topic与broker关系;
- producer发送消息,连接某个NameServer,并建立长连接。如果topic存在,则由NameServer直接分配;如果topic不存在,则由NameServer创建topic与broker关系,并分配。
- producer在broker的topic中选择一个消息队列(从列表中选择);
- producer与broker建立长连接用于发送消息;
- producer发送消息。
consumer的工作流程同producer。
二. 双主双从集群搭建
2.1 网络配置
进入其中一台虚拟机的etc目录下,查看hosts文件,增加如下配置:
# nameserver
IP地址1 rocketmq-nameserver1
IP地址2 rocketmq-nameserver2
#broker
IP地址1 rocketmq-master1
IP地址1 rocketmq-slave2
IP地址2 rocketmq-master2
IP地址2 rocketmq-slave1
备注:另一台虚拟机的hosts文件同样需要修改。
2.2 环境变量
vim /etc/profile,最后增加:
# rocketmq enviroment
ROCKETMQ_HOME=/rocketmq
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH
备注:另一台虚拟机要需要同样的操作。
未完待续……