登录
注册
写文章
发现
工具
docker部署RocketMQ
_3t3lfz KEKfID
编辑文章
docker部署RocketMQ
asfx站长
2022.11.10 16:20:08
阅读
785
#### 1.创建一个虚拟网络mynet ``` docker network create --subnet=172.18.1.0/16 mynet ``` #### 2.创建目录 ``` mkdir -p /home/rocketmq/{name_server,broker,console} mkdir -p /home/rocketmq/name_server/{logs,store} mkdir -p /home/rocketmq/broker/{logs,store,conf} 或者 mkdir -p /home/rocketmq/{name_server,broker,console} && mkdir -p /home/rocketmq/name_server/{logs,store} && mkdir -p /home/rocketmq/broker/{logs,store,conf} ``` #### 3.启动name_server容器 ``` docker run --name rmq_namesrv \ --restart=always \ -p 9876:9876 \ --privileged=true \ --network mynet \ -v /home/rocketmq/name_server/logs:/root/logs \ -v /home/rocketmq/name_server/store:/root/store \ -e "MAX_POSSIBLE_HEAP=100000000" \ -d rocketmqinc/rocketmq:4.4.0 sh mqnamesrv autoCreateTopicEnable=false ``` #### 4.创建编辑broker.conf配置文件 ``` vi /home/rocketmq/broker/conf/broker.conf ``` 根据实际情况请修改下面的IP ``` # broker集群名称 brokerClusterName = DefaultCluster # broker节点名称 brokerName=broker-a # broker节点id brokerId=0 # 删除条件 deleteWhen=04 # 文件保留时间(单位小时),默认为3天 fileReservedTime=48 # broker角色 brokerRole=ASYNC_MASTER # 磁盘同步方式:同步,异步 flushDiskType=ASYNC_FLUSH # 当前broker监听的IP(主) brokerIP1=192.168.233.128 # 是否开启Topic自动创建 autoCreateTopicEnable=false ``` #### 5.创建rocketmq_broker容器 注意-e "NAMESRV_ADDR=后面需要与前面所创建的 "rmq_namesrv" 容器名一致。 并附带端口号,格式【容器名:端口】 ``` docker run --name rmq_broker \ --restart=always \ -p 10911:10911 -p 10909:10909 \ --privileged=true \ --network mynet \ -v /home/rocketmq/broker/logs:/root/logs \ -v /home/rocketmq/broker/store:/root/store \ -v /home/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \ -e "NAMESRV_ADDR=rmq_namesrv:9876" \ -e "MAX_POSSIBLE_HEAP=200000000" \ -d rocketmqinc/rocketmq:4.4.0 sh mqbroker autoCreateTopicEnable=false ``` #### 6.测试容器之间网络是否互通 ``` docker exec -ti rmq_namesrv bash ping rmq_broker 或者 docker exec -ti rmq_broker bash ping rmq_namesrv ``` #### 7.创建rocketmq_console容器 注意-e "JAVA_OPTS=-Drocketmq.namesrv.addr=后面需要与前面所创建的 "rmq_namesrv" 容器名一致。 并附带端口号,格式【容器名:端口】 ``` docker run --name rmq_console \ --restart=always \ -p 8088:8080 --network mynet \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmq_namesrv:9876" \ -d styletang/rocketmq-console-ng ``` #### 8.访问控制台 ``` http://服务器ip:8088 ```
我的主页
退出