您现在的位置是:首页 >其他 >RocketMQ的学习历程(3)----RocketMQ部署(docker版)网站首页其他

RocketMQ的学习历程(3)----RocketMQ部署(docker版)

只会写bug的靓仔 2023-05-01 22:30:02
简介RocketMQ的学习历程(3)----RocketMQ部署(docker版)

RocketMQ部署(docker版)

在这里插入图片描述

1. 部署开始前的准备

  1. 一台linux机器。(我这里使用的是阿里云的一个centos7的服务器)
  2. docker环境以及相关的简单知识。
  3. 一些计算机网络的简单知识。(可以帮你透彻了解为什么这么部署)
    docker部署十分简单快捷,重点就是不同网络的特性,如果了解不同网络特性可以事半功倍地部署相关服务。

点击链接可以在我上篇博客中学习基本的三种基本网络。
博客地址

参考文档:

  1. RocketMQ github官方文档https://github.com/apache/rocketmq
  2. docker快速搭建RokcetMQ简称

2.部署过程

注意:官方的教程直接是host网络,即和宿主机网络相同,所以不需要开端口,也尽量不要开多容器,多容器需要更改端口,多容器请使用网桥模式。

2.1.启动name server

docker run -it --net=host apache/rocketmq ./mqnamesrv

启动比较简单不需要额外配置什么文件。

2.2.启动broker

  1. 创建broker配置(和nameserver不同,broker需要手动配置broker地址,用于路由注册。)

如果你已经启动了broker,但是需要配置下broker在路由中认证的地址,否则无法将消费者导向正确的路由。

错误为下面展示
在这里插入图片描述

这里的ip尽量填外网ip注意:自用电脑一般没公网ip,只能先填本机凑合,这样的话程序也最好在本机运行),因为中间件的通信一般不局限于一台主机上,不同主机,甚至不同位置都是常态,

  1. 创建broker挂载相关文件夹
mkdir -p /usr/dockerrocketmq/rmqbroker01/logs
mkdir -p /usr/dockerrocketmq/rmqbroker01/conf
mkdir -p /usr/dockerrocketmq/rmqbroker01/store
vi /usr/dockerrocketmq/rmqbroker01/conf/broker.conf
  1. 创建broker配置文件
    在这里插入图片描述
#nameserver的外网ip地址,这个一般为9876端口,这个配置项也可以不要,启动的时候指定
namesrvAddr=ip:port
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#broker主机所在的外网ip,非常关键
brokerIP1 = ip
listenPort=10911
  1. 创建容器
docker run -it --net=host -v  /usr/data/broker/logs:/root/logs -v  /usr/dockerrocketmq/rmqbroker01/store:/root/store -v  /usr/dockerrocketmq/rmqbroker01/conf/broker.conf:/opt/rocketmq-4.9.4/conf/broker.conf --name rmqbroker   rocketmqinc/rocketmq sh mqbroker -n ip:9876 -c /opt/rocketmq-4.9.4/conf/broker.conf

虽然很长,但是核心思想就是挂载三个卷,conf卷是必须挂载的,否则很容易识别不到外网ip,导致中间件处于半残废状态!

2.3.启动ocketmq-dashboard(非必须部署,但是建议新手部署)

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=外网ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t pangliang/rocketmq-console-ng

我这里8080有东西了,我改成8082端口。

在这里插入图片描述
在这里插入图片描述

大功告成!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。