docker单机部署rocketmq主主集群

╰半橙微兮° 2022-01-12 10:59 881阅读 0赞

在docker部署单机版的基础上,部署集群,都是基于内网ip部署

  1. 创建几个目录
  2. mkdir -p /opt/rocketmq/logs/nameserver-a
  3. mkdir -p /opt/rocketmq/logs/nameserver-b
  4. mkdir -p /opt/rocketmq/store/nameserver-a
  5. mkdir -p /opt/rocketmq/store/nameserver-b
  6. mkdir -p /opt/rocketmq/logs/broker-a
  7. mkdir -p /opt/rocketmq/logs/broker-b
  8. mkdir -p /opt/rocketmq/store/broker-a
  9. mkdir -p /opt/rocketmq/store/broker-b
  10. mkdir -p /home/rocketmq/broker-a/
  11. mkdir -p /home/rocketmq/broker-b/

编写broker.conf
broker-a.conf

  1. brokerClusterName = rocketmq-cluster
  2. brokerName = broker-a
  3. brokerId = 0
  4. # 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
  5. #brokerIP1 = xxxxx
  6. deleteWhen = 04
  7. fileReservedTime = 48
  8. brokerRole = ASYNC_MASTER
  9. flushDiskType = ASYNC_FLUSH
  10. # 内网的
  11. namesrvAddr=172.17.0.1:9876;172.17.0.1:9877
  12. autoCreateTopicEnable=true
  13. #Broker 对外服务的监听端口,
  14. listenPort = 11911
  15. #Broker角色
  16. #- ASYNC_MASTER 异步复制Master
  17. #- SYNC_MASTER 同步双写Master
  18. #- SLAVE
  19. brokerRole=ASYNC_MASTER
  20. #刷盘方式
  21. #- ASYNC_FLUSH 异步刷盘
  22. #- SYNC_FLUSH 同步刷盘
  23. flushDiskType=ASYNC_FLUSH

broker-b.conf

  1. brokerClusterName = rocketmq-cluster
  2. brokerName = broker-b
  3. brokerId = 0
  4. # 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
  5. #brokerIP1 = xxxxx
  6. deleteWhen = 04
  7. fileReservedTime = 48
  8. brokerRole = ASYNC_MASTER
  9. flushDiskType = ASYNC_FLUSH
  10. # 内网的
  11. namesrvAddr=172.17.0.1:9876;172.17.0.1:9877
  12. autoCreateTopicEnable=true
  13. #Broker 对外服务的监听端口,
  14. listenPort = 11911
  15. #Broker角色
  16. #- ASYNC_MASTER 异步复制Master
  17. #- SYNC_MASTER 同步双写Master
  18. #- SLAVE
  19. brokerRole=ASYNC_MASTER
  20. #刷盘方式
  21. #- ASYNC_FLUSH 异步刷盘
  22. #- SYNC_FLUSH 同步刷盘
  23. flushDiskType=ASYNC_FLUSH

编写docker-compose.yml文件
多节点部署rocketmq集群,把下边的 nameserver和broker拆出来部署即可

  1. version: '3.5'
  2. services:
  3. rmqnamesrv-a:
  4. image: rocketmqinc/rocketmq:4.3.0
  5. container_name: rmqnamesrv-a
  6. ports:
  7. - 9876:9876
  8. volumes:
  9. - /opt/rocketmq/logs/nameserver-a:/opt/logs
  10. - /opt/rocketmq/store/nameserver-a:/opt/store
  11. command: sh mqnamesrv
  12. networks:
  13. rmq:
  14. aliases:
  15. - rmqnamesrv-a
  16. rmqnamesrv-b:
  17. image: rocketmqinc/rocketmq:4.3.0
  18. container_name: rmqnamesrv-b
  19. ports:
  20. - 9877:9876
  21. volumes:
  22. - /opt/rocketmq/logs/nameserver-b:/opt/logs
  23. - /opt/rocketmq/store/nameserver-b:/opt/store
  24. command: sh mqnamesrv
  25. networks:
  26. rmq:
  27. aliases:
  28. - rmqnamesrv-b
  29. rmqbroker-a:
  30. image: rocketmqinc/rocketmq:4.3.0
  31. container_name: rmqbroker-a
  32. ports:
  33. - 11909:10909
  34. - 11911:10911
  35. volumes:
  36. - /opt/rocketmq/logs/broker-a:/opt/logs
  37. - /opt/rocketmq/store/broker-a:/opt/store
  38. - /home/rocketmq/broker-a/broker-a.conf:/opt/rocketmq-4.3.0/conf/broker.conf
  39. #- /home/rocketmq/broker-a/broker.conf:/opt/rocketmq-4.3.0/conf/broker.conf
  40. environment:
  41. TZ: Asia/Shanghai
  42. NAMESRV_ADDR: "rmqnamesrv-a:9876"
  43. JAVA_OPTS: " -Duser.home=/opt"
  44. JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
  45. command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
  46. links:
  47. - rmqnamesrv-a:rmqnamesrv-a
  48. - rmqnamesrv-b:rmqnamesrv-b
  49. networks:
  50. rmq:
  51. aliases:
  52. - rmqbroker-a
  53. rmqbroker-b:
  54. image: rocketmqinc/rocketmq:4.3.0
  55. container_name: rmqbroker-b
  56. ports:
  57. - 10909:10909
  58. - 10911:10911
  59. volumes:
  60. - /opt/rocketmq/logs/broker-b:/opt/logs
  61. - /opt/rocketmq/store/broker-b:/opt/store
  62. - /home/rocketmq/broker-b/broker-b.conf:/opt/rocketmq-4.3.0/conf/broker.conf
  63. #- /home/rocketmq/broker-b:/opt/rocketmq-4.3.0/conf
  64. environment:
  65. TZ: Asia/Shanghai
  66. NAMESRV_ADDR: "rmqnamesrv-b:9876"
  67. JAVA_OPTS: " -Duser.home=/opt"
  68. JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
  69. command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
  70. links:
  71. - rmqnamesrv-a:rmqnamesrv-a
  72. - rmqnamesrv-b:rmqnamesrv-b
  73. networks:
  74. rmq:
  75. aliases:
  76. - rmqbroker-b
  77. rmqconsole:
  78. image: styletang/rocketmq-console-ng
  79. container_name: rmqconsole
  80. ports:
  81. - 9001:8080
  82. environment:
  83. JAVA_OPTS: -Drocketmq.namesrv.addr=rmqnamesrv-a:9876;rmqnamesrv-b:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false
  84. networks:
  85. rmq:
  86. aliases:
  87. - rmqconsole
  88. networks:
  89. rmq:
  90. name: rmq
  91. driver: bridge

docker-compose -f docker-compose.yml up -d

  1. java端的配置文件添加地址 namesrvAddr: ip:9876;ip:9877

发表评论

表情:
评论列表 (有 0 条评论,881人围观)

还没有评论,来说两句吧...

相关阅读