(十七)docker安装RocketMQ

 一、简介

操作系统:Linux  CentOS 7.3 64位

docker版本:19.03.8

RocketMQ版本:4.3.2

二、实践

1、拉取镜像

docker pull rocketmqinc/rocketmq:4.3.2

 

2、运行容器

我们先搭建namesrv(Name Server)服务。

它充当路由消息的提供者,生产者或消费者可以通过namesrv查找各主题对应的Broker IP列表。

多个namesrv实例组成集群,但相互独立,没有信息交换。

支持Broker的动态注册与发现。

创建挂载目录。

mkdir -p  /usr/local/docker/rocketmq/data/namesrv/logs   /usr/local/docker/rocketmq/data/namesrv/store

运行容器。

docker run --name rmqnamesrv \
--restart=always \
-p 9876:9876 \
-v /usr/local/docker/rocketmq/data/namesrv/logs:/root/logs \
-v /usr/local/docker/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
-d rocketmqinc/rocketmq:4.3.2 \
sh mqnamesrv

-e "MAX_POSSIBLE_HEAP=100000000"     ==》    指定namesrv服务的最大堆内存

接着我们搭建broker服务。

Broker Server在RocketMQ系统中负责接收从生产者发送来的消息并存储,同时为消费者的拉取请求做准备,也存储消息相关的元数据,包括消费者组、消费进度偏移、主题和队列信息等。

broker启动后需要完成一次将自己注册至namesrv的操作,随后每隔30s时间定时向namesrv上报Topic路由信息。
 

我们同样先创建挂载目录。

mkdir -p  /usr/local/docker/rocketmq/data/broker/logs   /usr/local/docker/rocketmq/data/broker/store /usr/local/docker/rocketmq/conf

接着创建配置文件。

vi /usr/local/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 = SYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = SYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.121.132
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

最后运行容器。

docker run --name rmqbroker \
--restart=always \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v  /usr/local/docker/rocketmq/data/broker/logs:/root/logs \
-v  /usr/local/docker/rocketmq/data/broker/store:/root/store \
-v /usr/local/docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.3.2/conf/broker.conf \
-e "NAMESRV_ADDR=192.168.121.132:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
-d rocketmqinc/rocketmq:4.3.2 \
sh mqbroker -c /opt/rocketmq-4.3.2/conf/broker.conf

–link rmqnamesrv:namesrv    ==》    和rmqnamesrv容器通信

-e "NAMESRV_ADDR=192.168.121.132:9876"   ==》     指定namesrv的地址

-e "MAX_POSSIBLE_HEAP=200000000"    ==》      指定broker服务的最大堆内存

3.搭建控制台rockermq-console服务

拉取镜像。

docker pull pangliang/rocketmq-console-ng

运行容器。

docker run --name rmqadmin \
--restart=always \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.121.132:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
-d pangliang/rocketmq-console-ng

-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.121.132:9876 ==》指定namesrv地址

-Dcom.rocketmq.sendMessageWithVIPChannel=false” ==》不使用vip通道发送消息

访问。

http://192.168.121.132:9999/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值