1. 服务器环境入下图所示,四台机器,IP位145为主节点,149是145的从节点。146是主节点,239是146的从节点
序号 IP 用户名 角色 模式
1 192.168.100.145 root nameServer1,brokerServer1 Master1
2 192.168.100.146 root nameServer2,brokerServer2 Master2
3 192.168.100.149 root nameServer3,brokerServer3 Master1-slave1
4 192.168.100.239 root nameServer4,brokerServer4 Master2-slave1
2. Hosts添加信息
IP NAME
192.168.100.145 rocketmq-nameserver1
192.168.100.145 rocketmq-master1
192.168.100.146 rocketmq-nameserver2
192.168.100.146 rocketmq-master2
192.168.100.149 rocketmq-nameserver3
192.168.100.149 rocketmq-master1-slave1
192.168.100.239 rocketmq-nameserver4
5.创建存储路径【4台机器】
6.RocketMQ配置文件【4台机器】--该文件有点类似于Redis里面的redis.con
broker-a-s.properties文件
broker-b.properties文件
broker-b-s.properties文件
8.启动NameServer【4台机器】
输入jps看到如上图所示表示成功
序号 IP 用户名 角色 模式
1 192.168.100.145 root nameServer1,brokerServer1 Master1
2 192.168.100.146 root nameServer2,brokerServer2 Master2
3 192.168.100.149 root nameServer3,brokerServer3 Master1-slave1
4 192.168.100.239 root nameServer4,brokerServer4 Master2-slave1
2. Hosts添加信息
IP NAME
192.168.100.145 rocketmq-nameserver1
192.168.100.145 rocketmq-master1
192.168.100.146 rocketmq-nameserver2
192.168.100.146 rocketmq-master2
192.168.100.149 rocketmq-nameserver3
192.168.100.149 rocketmq-master1-slave1
192.168.100.239 rocketmq-nameserver4
192.168.100.239 rocketmq-master2-slave1
3.编辑hosts文件【4台机器】
4.上传解压【4台机器】
5.创建存储路径【4台机器】
6.RocketMQ配置文件【4台机器】--该文件有点类似于Redis里面的redis.con
broker-a.properties文件
broker-a-s.properties文件
broker-b.properties文件
broker-b-s.properties文件
7. 修改启动脚本参数【4台机器】
8.启动NameServer【4台机器】
9.启动BrokerServer 【4台机器】
注意配置文件需要根据实际配置/broker-X.properties
输入jps看到如上图所示表示成功
10.修改tomcat配置文件
启动tomcat:
在浏览器输入:http://192.168.100.145:8080/rocketmq-console/
多Master多Slave可以保证实时消费,比如说:我有一主一从,如果主机宕机,那么我主机上从MQ获得的数据如果在没有从节点,那么这些消息将在主节点重启之前将无法被消费,直到主节点启动,如果们的这个主节点里面有从节点,从节点可以对外提供服务,并且从节点有从主节点同步过来的数据,那么还是可以将这些消息实时地消费掉。这点多Master方式无法做到
现在我模拟145这个节点宕机,但是145的从节点149能继续将消息提供给消费者消费如下图所示
停止服务broker:
当宕机的主节点起来之后,会和从节点进行数据的同步,不会重复消费刚刚消费过的数据。