docker部署rocketmq
作者:互联网
#1、拉去镜像需要自己先择一个版本、默认最新版,我这里选择的是4.3.2,如果换了版本,下面用到的地方也得对应调整
#(以前一直用rabbitmq,同事都用烦了,正好有个契机,用用rocketmq)
docker pull rocketmqinc/rocketmq:4.3.2
docker pull styletang/rocketmq-console-ng:1.0.0
#2、创建持久化目录 nameserver
mkdir -p /docker/rocketmq/data/nameserver/logs /docker/rocketmq/data/nameserver/store
#3、创建持久化目录 broker
mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store /docker/rocketmq/conf
#也借鉴好了多文章的写法,有的写法甚至把我这个小白误导了,直到我用windows装了一下才大概明白都是啥意思
# 4、启动 nameserver
docker run -d \
--name rocketmq_nameserver \
-p 9876:9876 \
-v /docker/rocketmq/data/nameserver/logs:/root/logs \
-v /docker/rocketmq/data/nameserver/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
rocketmqinc/rocketmq:4.3.2 \
sh mqnamesrv
#5、设置一些参数,这个是存抄的,里面的内容还没有证实它的可靠性
vi /docker/rocketmq/conf/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.143.130
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
#6、 启动 broker, 这个link 【rocketmq_nameserver:namesrv】中的 namesrv 好像还不能改,一改就报错,暂时先这样,感觉这个不写默认是不是可以。
docker run -d \
--name rocketmq_broker \
--link rocketmq_nameserver:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /docker/rocketmq/data/broker/logs:/root/logs \
-v /docker/rocketmq/data/broker/store:/root/store \
-v /docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.3.2/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq:4.3.2 \
sh mqbroker -c /opt/rocketmq-4.3.2/conf/broker.conf
#7、启动控制台 内容中 【namesrv】 貌似是与 broker 中的 link有点关系似的,但是windows装的时候也没弄这个玩意呢,先不管了有时间再深入了解下吧
docker run -d \
--name rocketmq_admin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.143.130:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 19876:8080 \
styletang/rocketmq-console-ng:1.0.0
#TODO 正好再新搭建的微服务下试试效果啥样。
标签:部署,broker,conf,docker,data,nameserver,rocketmq 来源: https://www.cnblogs.com/heyt/p/16418711.html