docker部署Broketrmq集群

部署Broketrmq集群

通过docker-compose形式部署

  • 首先创建 broker 配置文件,配置文件如下:
brokerClusterName = DefaultCluster  #集群名
brokerName = broker-a  #node名,集群内唯一
brokerId = 0 #配置节点是主还是从,0为主,1为从
deleteWhen = 04  
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = SYNC_FLUSH
listenPort = 10911
namesrvAddr=10.228.83.120:9876   #配置namesrvAddr注册中心地址
autoCreateTopicEnable=true  		#配置是否自动创建 Topic
autoCreateSubscriptionGroup=true	#配置是否自动创建 SubscriptionGroup 订阅组
storePathRootDir=/home/rocketmq/store	#配置数据存储位置,持久化使用
storePathCommitLog=/home/rocketmq/store/commitlog	#配置日志存储位置
brokerIP1=10.228.83.120		#配置主机IP地址

配置文件参考

  • 创建yml文件,vim docker-compose.yml,配置文件如下:
version: '2'
services:
  namesrv:
    image: rocketmqinc/rocketmq
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /opt/namesrv/logs:/home/rocketmq/logs
      - /opt/namesrv/store:/home/rocketmq/store
    command: sh mqnamesrv
  broker:
    image: rocketmqinc/rocketmq
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
    command: sh mqbroker  -n rmqnamesrv:9876 autoCreateTopicEnable=true  -c ../conf/broker.conf &  
    depends_on:
      - namesrv
    environment:
      - JAVA_HOME=/usr/lib/jvm/jre
  console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console-ng
    ports:
      - 8087:8080
    depends_on:
      - namesrv
    environment:
      - JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876
      - Dcom.rocketmq.sendMessageWithVIPChannel=false

console 可不部署,就是一个可视化的web界面。可作为集群是否部署成功的一个参考,如下:
在这里插入图片描述

  • 如果后面需要添加集群的可参考如下操作

    • 同台主机添加

        1. 参考之前docker-compose.yml配置,创建相关broker文件夹
        2. 参考之前broker配置,创建broker配置文件
        3. 参考之前docker-compose.yml配置,编写docker run命令,命令样例如下:
        docker run -itd --name rmqbroker_b  --network=rocketmq_default   -p 10919:10909  -p 10921:10911 -p 10922:10912  -v /opt/rocketmq_b/logs:/home/rocketmq/logs  -v /opt/rocketmq_b/store:/home/rocketmq/store  -v /opt/rocketmq_b/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf  rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
        
    • 不同主机添加

        1. 参考之前docker-compose.yml配置,创建相关broker文件夹

        2. 参考之前broker配置,创建broker配置文件

        3. 参考之前docker-compose.yml配置,编写docker run命令,命令样例如下:

          docker run -itd --name rmqbroker_d    --privileged  -p 10929:10909  -p 10931:10911 -p 10932:10912  -v /opt/rocketmq_c/logs:/home/rocketmq/logs  -v /opt/rocketmq_c/store:/home/rocketmq/store  -v /opt/rocketmq_c/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf  -e "JAVA_OPT_EXT=-server -Xms2048m -Xmx2048m -Xmn2048m"    rocketmqinc/rocketmq   sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
          

          -e "JAVA_OPT_EXT=-server -Xms2048m -Xmx2048m -Xmn2048m"

          此参数待考证可不加,与同主机添加的不同就是网络模式指定的不同

结束!!!

参考链接

参考一
参考二
参考三
参考四
参考五

posted @ 2020-09-07 18:41  自在拉基  阅读(223)  评论(0编辑  收藏  举报