当前位置:   article > 正文

RocketMq-主从集群搭建_rocketmq 主从配置

rocketmq 主从配置

目录

1.服务器列表

2.下载安装包

3.node1节点修改runserver.sh文件

4. 所有节点安装jdk

5. node1节点配置RocketMQ集群

1.配置node1节点borker-a的master配置文件

2.配置node2节点配置borker-a的slave borker-a-s节点

3.配置node3节点配置borker-b的master节点

4.配置node4节点配置borker-b的slave节

6.将配置好的rocketmq打包拷贝到其他三台服务器

 7.打开防火墙端口

 8.启动nameser

 9.启动BrokerServer

1.node1 192.168.1.3

2.node2 192.168.1.9

3.node3 192.168.1.10

4.node4 192.168.1.11

10.在node1节点上安装控制台 

11.访问测试


1.服务器列表

nameip远程端口
node4 nameserver broker-b-s192.168.1.1122
node3 nameserver broker-b192.168.1.1022
node2 nameserver broker-a-s192.168.1.922
node1 nameserver broker-a192.168.1.322

2.下载安装包

  1. # 版本4.9.4
  2. 链接:https://pan.baidu.com/s/15s6lasTfeMv1rUBrH34XPg
  3. 提取码:4545
  4. # 创建文件目录
  5. mkdir -p /data/soft/ && cd /data/soft/
  6. # 创建配置文件目录
  7. mkdir -p /data/soft/rocket/conf
  8. # 创建存储路径
  9. mkdir -p /data/soft/rocket/store/{commitlog,consumequeue,index}
  10. # 修改默认端口
  11. vi /data/soft/rocket/conf/nameser.properties
  12. # 文件内容 默认9876
  13. listenPort=20000
  14. # 查看文件内容
  15. cat /data/soft/rocket/conf/nameser.properties

 

  1. # 上传 rocketmq-all-4.9.4-bin-release.zip
  2. # 没有rz命令执行: yum -y install lrzsz
  3. rz
  4. # 安装解压工具
  5. yum install -y unzip zip
  6. # 解压rocketmq
  7. unzip rocketmq-all-4.9.4-bin-release.zip

 

3.node1节点修改runserver.sh文件

RocketMQ默认预设的JVM内存是4G 用runserver.sh、runbroker.sh 、tools.sh编辑这三个脚本,在脚本中找到这一行调整内存大小为256M

  1. # 两处
  2. vi /data/soft/rocketmq-all-4.9.4-bin-release/bin/runserver.sh
  3. # JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  4. JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=160m"

  1. vi /data/soft/rocketmq-all-4.9.4-bin-release/bin/runbroker.sh
  2. #JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
  3. JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

  1. vi /data/soft/rocketmq-all-4.9.4-bin-release/bin/tools.sh
  2. # JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
  3. JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"

4. 所有节点安装jdk

  1. #查看jdk 1.8列表:
  2. yum list java-1.8.0*
  3. #安装jdk 1.8下所有包
  4. yum install java-1.8.0-openjdk* -y
  5. #查看安装结果
  6. java -version

5. node1节点配置RocketMQ集群

下面配置只在node1节点上预先配置好。标题描述为该配置文件在那台服务器上使用
RocketMQ--Dledger集群搭建
RocketMQ--Dledger集群搭建_rocketmq dledger_84岁带头冲锋的博客-CSDN博客

1.配置node1节点borker-a的master配置文件

  1. #192.168.1.3 node1节点配置borker-a的master节点2m-2s-async/broker-a.properties
  2. # 先删除在编辑
  3. rm -rf /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a.properties
  4. # 编辑配置文件粘贴下面内容
  5. vi /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a.properties

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

 

2.配置node2节点配置borker-a的slave borker-a-s节点

  1. # 192.168.1.9
  2. # 所属集群名字,名字一样的节点就在同一个集群内
  3. # broker名字,名字一样的节点就是一组主从节点。
  4. # brokerid,0就表示是Master,>0的都是表示 Slave
  5. # nameServer地址类似zookeeper
  6. # 先删除在编辑
  7. rm -rf /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a-s.properties
  8. # 编辑配置文件粘贴下面内容
  9. vi /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a-s.properties

 

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

3.配置node3节点配置borker-b的master节点

##所属集群名字,名字一样的节点就在同一个集群内
##broker名字,名字一样的节点就是一组主从节点。
# 复制5.1内容,修改brokerName=broker-a 为brokerName=broker-b即可

  1. #192.168.1.10
  2. # 先删除在编辑
  3. rm -rf /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b.properties
  4. # 复制配置文件
  5. cp /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a.properties /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b.properties
  6. # 修改brokerName=broker-a 为brokerName=broker-b
  7. vi /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b.properties

4.配置node4节点配置borker-b的slave节

###所属集群名字,名字一样的节点就在同一个集群内
###broker名字,名字一样的节点就是一组主从节点。
复制5.2内容,修改brokerName=broker-a 为brokerName=broker-b即可

  1. #192.168.1.11
  2. # 先删除在编辑
  3. rm -rf /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b-s.properties
  4. # 复制配置文件
  5. cp /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a-s.properties /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b-s.properties
  6. # 修改brokerName=broker-a 为brokerName=broker-b
  7. vi /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b-s.properties

6.将配置好的rocketmq打包拷贝到其他三台服务器

tar czvf rocketmq-all-4.9.4-bin-release.tar rocketmq-all-4.9.4-bin-release/

tar czvf rocket.tar rocket/

  1. # 执行拷贝 rocketmq-all-4.9.4-bin-release.tar 文件 root 目标用户名@目标ip:目标目录(/ 根目录)
  2. scp rocketmq-all-4.9.4-bin-release.tar root@192.168.1.11:/data/soft/
  3. scp rocketmq-all-4.9.4-bin-release.tar root@192.168.1.10:/data/soft/
  4. scp rocketmq-all-4.9.4-bin-release.tar root@192.168.1.9:/data/soft/
  5. # 执行拷贝 rocket.tar 文件 root 目标用户名@目标ip:目标目录(/ 根目录)
  6. scp rocket.tar root@192.168.1.11:/data/soft/
  7. scp rocket.tar root@192.168.1.10:/data/soft/
  8. scp rocket.tar root@192.168.1.9:/data/soft/

在这三台服务器上解压上面传输的两个文件

  1. tar xzvf rocketmq-all-4.9.4-bin-release.tar
  2. tar xzvf rocket.tar
  3. ls

 7.打开防火墙端口

每个节点都要执行

namesrv只使用了一个9876端口,修改了默认配置改为20000

firewall-cmd --zone=public --add-port=20000/tcp --permanent

broker的服务端口号 修改broker的listenPort端口号为20001

firewall-cmd --zone=public --add-port=20001/tcp --permanent

haListenPort haListenPort是haService中使用

//默认值为:listenPort + 1 这个值是在BrokerStartup.java中设置的
/**
* 影响haservice中AcceptSocketService服务的端口号
* 参考:
* com.alibaba.rocketmq.store.ha.HAService 构造函数中
*     this.acceptSocketService =
   new AcceptSocketService(defaultMessageStore.getMessageStoreConfig().getHaListenPort());
*/
messageStoreConfig.setHaListenPort(nettyServerConfig.getListenPort() + 1);

firewall-cmd --zone=public --add-port=20002/tcp --permanent

fastListenPort

/**
 *主要用于slave同master同步。 默认为:主要是fastRemotingServer服务使用 listenPort - 2
 * listenPort - 2 默认 10909
 */
fastConfig.setListenPort(nettyServerConfig.getListenPort() - 2);
this.fastRemotingServer = new NettyRemotingServer(fastConfig, this.clientHousekeepingService)

firewall-cmd --zone=public --add-port=19999/tcp --permanent
  1. # 重启生效
  2. firewall-cmd --reload

 8.启动nameser

每台都执行即可下面命令

nohup sh /data/soft/rocketmq-all-4.9.4-bin-release/bin/mqnamesrv  -c /data/soft/rocket/conf/nameser.properties &

 9.启动BrokerServer

1.node1 192.168.1.3

nohup sh /data/soft/rocketmq-all-4.9.4-bin-release/bin/mqbroker -c /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &

2.node2 192.168.1.9

nohup sh /data/soft/rocketmq-all-4.9.4-bin-release/bin/mqbroker -c /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &

3.node3 192.168.1.10

nohup sh /data/soft/rocketmq-all-4.9.4-bin-release/bin/mqbroker -c /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b.properties  >/dev/null 2>&1 &

4.node4 192.168.1.11

nohup sh /data/soft/rocketmq-all-4.9.4-bin-release/bin/mqbroker -c /data/soft/rocketmq-all-4.9.4-bin-release/conf/2m-2s-async/broker-b-s.properties   >/dev/null 2>&1 &

10.在node1节点上安装控制台 

 docker pull apacherocketmq/rocketmq-dashboard:latest


 

  1. docker run -it -d \
  2. --restart=always --privileged=true -m 300m \
  3. --name rmqadmin \
  4. -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.1.3:20000;192.168.1.9:20000;192.168.1.10:20000;192.168.1.11:20000 \
  5. -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
  6. -p 10024:8080 \
  7. pangliang/rocketmq-console-ng

firewall-cmd --zone=public --add-port=10024/tcp --permanent
  1. # 重启生效
  2. firewall-cmd --reload

 

11.访问测试

192.168.1.3:10024

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/490985
推荐阅读
相关标签
  

闽ICP备14008679号