• 多个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。

二. 双主双从集群搭建


image.png

2.1 网络配置

进入其中一台虚拟机的etc目录下,查看hosts文件,增加如下配置:

  1. # nameserver
  2. IP地址1 rocketmq-nameserver1
  3. IP地址2 rocketmq-nameserver2
  4. #broker
  5. IP地址1 rocketmq-master1
  6. IP地址1 rocketmq-slave2
  7. IP地址2 rocketmq-master2
  8. IP地址2 rocketmq-slave1

备注:另一台虚拟机的hosts文件同样需要修改。

2.2 环境变量


vim /etc/profile,最后增加:

  1. # rocketmq enviroment
  2. ROCKETMQ_HOME=/rocketmq
  3. PATH=$PATH:$ROCKETMQ_HOME/bin
  4. export ROCKETMQ_HOME PATH

备注:另一台虚拟机要需要同样的操作。

未完待续……