DockerCompose部署rocketMQ

最近工作时用到了rocketMQ,并且测试服务器的rocketMQ总会出现问题,我找到运维的同事把测试服务器的账号要过来,准备自己部署一下rocketMQ,于是便有了这篇博客。

        这篇博客参考了使用docker安装RocketMQ_皓亮君的博客-CSDN博客_docker rocketmq

        并使用dockerCompose进行部署简化了操作的过程。

        首先我们需要有dockerCompose的环境,这里不多介绍了,前面的博客已经写了太多安装的步骤了。

        使用DockerCompose部署只需要准备两个文件,broker.conf和docker-compose.yml。

1、broker.conf

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.30.200
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

此文件只需要修改一下ip即可

 2、docker-compose.yml

version: "3.0"
services:
    rocketmqNameServer:
        image: rocketmqinc/rocketmq
        container_name: rocketmqNameServer
        #restart: always
        volumes:
            #挂载路径,冒号左边为服务器本地路径,冒号右边为容器内部路径
            - /home/ubuntu2004/rocketMQ/data/nameServer/logs:/root/logs
            - /home/ubuntu2004/rocketMQ/data/nameServer/store:/root/store
        environment:
            MAX_POSSIBLE_HEAP: 100000000
        command:
            # 服务启动
            sh mqnamesrv 
        #network_mode: host
        ports: 
            - "9876:9876"

    rocketmqBroker:
        image: rocketmqinc/rocketmq
        container_name: rocketmqBroker
        #restart: always
        volumes:
            #挂载路径,冒号左边为服务器本地路径,冒号右边为容器内部路径
            - /home/ubuntu2004/rocketMQ/data/broker/logs:/root/logs
            - /home/ubuntu2004/rocketMQ/data/broker/store:/root/store
            - /home/ubuntu2004/rocketMQ/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
        links:
            - rocketmqNameServer:namesrv
        
        environment:
            NAMESRV_ADDR: namesrv:9876
            MAX_POSSIBLE_HEAP: 200000000
        command:
            # 服务启动
            sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
        #network_mode: host
        ports: 
            - "10911:10911"
            - "10909:10909"
            
    rocketmqConsole:
        image: pangliang/rocketmq-console-ng
        container_name: rocketmqConsole
        links:
            - rocketmqNameServer:namesrv
        environment:
            JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
        #network_mode: host
        ports: 
            - "19999:8080"

此文件需要修改一下挂在路径,即volumes选项下冒号左边的路径。

3、将broker.conf文件放到对应的路径下即可,示例中的路径为/home/ubuntu2004/rocketMQ/broker.conf,这个可以随意调整。

4、启动DockerCompose。

docker-compose up -d

搞定!

你可能感兴趣的:(Docker,java-rocketmq,rocketmq,java)