docker安装rocketmq

2023-07-13

docker run -d ^

--restart=always ^

--name rmqnamesrv ^

-p 9876:9876 ^

-v D:\Docker\rocketmq\rmqnamesrv\logs:/root/logs ^

-v D:\Docker\rocketmq\rmqnamesrv\store:/root/store ^

rocketmqinc/rocketmq ^

sh mqnamesrv 


docker run -d ^

--restart=always ^

--name rmqbroker ^

--link rmqnamesrv:namesrv ^

-p 10911:10911 ^

-p 10909:10909 ^

-v D:\Docker\rocketmq\rmqbroker\logs:/root/logs ^

-v D:\Docker\rocketmq\rmqbroker\store:/root/store ^

-v D:\Docker\rocketmq\rmqbroker\conf\broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf ^

-e "NAMESRV_ADDR=namesrv:9876" ^

-e "MAX_POSSIBLE_HEAP=200000000" ^

rocketmqinc/rocketmq ^

sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf



docker run -d ^

--restart=always ^

--name rmq-console ^

--link rmqnamesrv:namesrv ^

-p 9999:8080 ^

-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" ^

styletang/rocketmq-console-ng



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.1.3

# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full

diskMaxUsedSpaceRatio=95


docker-compose

services:

 namesrv:

  image: rocketmqinc/rocketmq

  container_name: rmqnamesrv

  ports:

   - 9876:9876

  volumes:

   - /opt/rocketmq/logs:/home/rocketmq/logs

   - /opt/rocketmq/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 namesrv:9876

  command: sh mqbroker -n namesrv:9876 -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