双RocketMq集群的搭建

Posted Itlyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双RocketMq集群的搭建相关的知识,希望对你有一定的参考价值。

一、双Master RocketMq集群的搭建

  1、服务器环境:

序号 IP 用户名 角色 模式
1 192.168.211.128 root nameServer1,brokerServer1 Master1
2 192.168.211.129 root nameServer2,brokerServer2 Master1

 

 

 

  2、添加hosts信息

  vim /etc/hosts

IP NAME
192.168.211.128 rocketmq-nameserver1
192.168.211.128 rocketmq-master1
192.168.211.129 rocketmq-nameserver2
192.168.211.129 rocketmq-master2

 

 

 

 

 

  3、上传解压rocketMq到服务器

  上传alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local/install
  解压tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local/software

 

  4、创建软连接(两台机器)

  ln -s alibaba-rocketmq rocketmq

  

  5、创建存储路径(两台机器)

  # mkdir /usr/local/software/rocketmq/store
  # mkdir /usr/local/software/rocketmq/store/commitlog
  # mkdir /usr/local/software/rocketmq/store/consumequeue
  # mkdir /usr/local/software/rocketmq/store/index

 

  6、RocketMQ配置文件(两台机器)

  

  # vim /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties
  # vim /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties

  

 1 将a.properties和b.properties文件中的内容全部清掉(用下面的内容替换掉)
 2     #所属集群名字
 3     brokerClusterName=rocketmq-cluster
 4     #broker名字,注意此处不同的配置文件填写的不一样  例如:在a.properties 文件中写 broker-a  在b.properties 文件中写 broker-b
 5     brokerName=broker-a|broker-b
 6     #0 表示 Master,>0 表示 Slave
 7     brokerId=0
 8     #nameServer地址,分号分割
 9     namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
10     #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
11     defaultTopicQueueNums=4
12     #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
13     autoCreateTopicEnable=true
14     #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
15     autoCreateSubscriptionGroup=true
16     #Broker 对外服务的监听端口
17     listenPort=10911
18     #删除文件时间点,默认凌晨 4点
19     deleteWhen=04
20     #文件保留时间,默认 48 小时
21     fileReservedTime=120
22     #commitLog每个文件的大小默认1G
23     mapedFileSizeCommitLog=1073741824
24     #ConsumeQueue每个文件默认存30W条,根据业务情况调整
25     mapedFileSizeConsumeQueue=300000
26     #destroyMapedFileIntervalForcibly=120000
27     #redeleteHangedFileInterval=120000
28     #检测物理文件磁盘空间
29     diskMaxUsedSpaceRatio=88
30     #存储路径
31     storePathRootDir=/usr/local/software/rocketmq/store
32     #commitLog 存储路径
33     storePathCommitLog=/usr/local/software/rocketmq/store/commitlog
34     #消费队列存储路径存储路径
35     storePathConsumeQueue=/usr/local/software/rocketmq/store/consumequeue
36     #消息索引存储路径
37     storePathIndex=/usr/local/software/rocketmq/store/index
38     #checkpoint 文件存储路径
39     storeCheckpoint=/usr/local/software/rocketmq/store/checkpoint
40     #abort 文件存储路径
41     abortFile=/usr/local/software/rocketmq/store/abort
42     #限制的消息大小
43     maxMessageSize=65536
44     #flushCommitLogLeastPages=4
45     #flushConsumeQueueLeastPages=2
46     #flushCommitLogThoroughInterval=10000
47     #flushConsumeQueueThoroughInterval=60000
48     #Broker 的角色
49     #- ASYNC_MASTER 异步复制Master
50     #- SYNC_MASTER 同步双写Master
51     #- SLAVE
52     brokerRole=ASYNC_MASTER
53     #刷盘方式
54     #- ASYNC_FLUSH 异步刷盘
55     #- SYNC_FLUSH 同步刷盘
56     flushDiskType=ASYNC_FLUSH
57     #checkTransactionMessageEnable=false
58     #发消息线程池数量
59     #sendMessageThreadPoolNums=128
60     #拉消息线程池数量
61     #pullMessageThreadPoolNums=128

  7、修改日志文件(两台机器)

  

  # mkdir -p /usr/local/software/rocketmq/logs
  # cd /usr/local/software/rocketmq/conf && sed -i ‘s#${user.home}#/usr/local/software/rocketmq#g‘ *.xml

 

  8、修改启动脚本参数(修改启动脚本参数两台机器)

  

  8.1、vim /usr/local/software/rocketmq/bin/runbroker.sh

  #===========================================================================================
  # JVM Configuration
  #===========================================================================================

  JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
  XX:PermSize=128m -XX:MaxPermSize=320m"

  8.2、vim /usr/local/software/rocketmq/bin/runserver.sh
  JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
  XX:PermSize=128m -XX:MaxPermSize=320m"

  

  9、启动NameServer(特别注意:在启动 BrokerServer 之前先关闭防火墙)

  

  # cd /usr/local/software/rocketmq/bin
  # nohup sh mqnamesrv &

  10、启动BrokerServer A【192.168.211.128】

  # cd /usr/local/software/rocketmq/bin
  # nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
  # netstat -ntlp
  # jps
  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log

 

  11、启动BrokerServer B 【192.168.211.129】

  

  # cd /usr/local/software/rocketmq/bin
  # nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
  # netstat -ntlp
  # jps
  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
  # tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log

 

  12、停止服务

    先停止 broker 在停止  namesrv
    cd /usr/local/software/rocketmq/bin
    # sh mqshutdown broker
    # sh mqshutdown namesrv

  

以上是关于双RocketMq集群的搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境快速搭建RocketMQ双Master模式

mac下rocketmq各种集群模式搭建实战

《从0开始学RocketMQ》—集群搭建

原创《从0开始学RocketMQ》—集群搭建

实践RocketMQ 双Master-Slave 集群架构搭建部署

mac下rocketmq各种集群模式搭建实战