【自动化部署学习】【离线】docker安装RocketMQ(单节点)

docker安装RocketMQ(单节点)

RocketMQ的部署架构包括以下几个核心组件:

  1. Name Server(命名服务器):用于管理所有的Broker节点的信息,包括Broker的地址、Topic的路由信息等。生产者和消费者通过与Name Server交互获取Broker的地址,从而进行消息的发送和消费。

  2. Broker(消息中间件服务器):负责存储和转发消息。一个Broker节点可以承载多个Topic的消息,每个Topic可以有多个队列,每个队列可以有多个消费者。

  3. Producer(消息生产者):负责将消息发送到Broker,可以将消息发送到指定的Topic和队列。

  4. Consumer(消息消费者):负责从Broker订阅并消费消息。消费者可以以集群模式或广播模式消费消息,集群模式下一个消费组内的消费者共同消费消息,广播模式下每个消费者都可以独立消费消息。

  5. Message Queue(消息队列):用于存储消息的队列,每个队列都有一个唯一的ID,消息按照队列的顺序进行存储和消费。

  6. Topic(消息主题):消息的逻辑分类,生产者将消息发送到指定的Topic,消费者可以订阅指定的Topic来消费消息。

RocketMQ的部署架构可以根据实际需求进行扩展和调整,可以通过增加Broker节点、调整Topic的分区数、增加消费者等方式来提高系统的性能和可用性。

一、拉取镜像

[root@docker /]#  docker pull foxiswho/rocketmq:server-4.7.0 
[root@docker /]#  docker pull foxiswho/rocketmq:broker-4.7.0 
[root@docker /]#  docker pull foxiswho/rocketmq:styletang/rocketmq-console-ng 

#【离线】安装时:使用联网的docker服务器拉取镜像并打包出来
#拉取
docker pull [镜像名称]:[版本]
例如:docker pull elasticsearch:7.10.1

#打包镜像为压缩包
docker save -o [压缩包路径] [镜像名称]:[版本]
例如:docker save -o /data/app/elasticsearch-7.2.1.tar elasticsearch:7.10.1

#将镜像压缩包上传到离线的服务器上,加载离线镜像
docker load -i [压缩包路径]
例如:docker load -i elasticsearch-7.2.1.tar

#查看镜像
[root@docker /]#  docker ps
foxiswho/rocketmq               server-4.7.0        40eace81be52        3 years ago         498MB
foxiswho/rocketmq               broker-4.7.0        7f35e57e1383        3 years ago         498MB
styletang/rocketmq-console-ng   latest              7df83bb6e638        6 years ago         702MB

二、创建挂载目录

#创建并赋权-broker
[root@docker /]#  mkdir -p /data/software/rocketmq-broker/9876/conf /data/software/rocketmq-broker/9876/logs /data/software/rocketmq-broker/9876/store 
[root@docker /]#  chmod 777 /data/software/rocketmq-broker/9876/conf /data/software/rocketmq-broker/9876/logs /data/software/rocketmq-broker/9876/store 

#创建并赋权-nameserver
[root@docker /]#  mkdir -p /data/software/rocketmq-server/9876/conf /data/software/rocketmq-server/9876/logs /data/software/rocketmq-server/9876/store 
[root@docker /]#  chmod 777 /data/software/rocketmq-server/9876/conf /data/software/rocketmq-server/9876/logs /data/software/rocketmq-server/9876/store 

三、添加修改配置文件

#在 /data/software/rocketmq-broker/9876/conf目录下创建文件broker.conf 

[root@docker /]#  touch broker.conf 
[root@docker /]#  vi broker.conf 
#将以下内容粘贴进去,IP改为对应的IP
namesrvAddr=192.168.21.132:9876
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.21.132
listenPort=10911

四、启动容器

#启动rocketmq-server
docker run -d \
--restart=always \
--name rmqnamesrv \
-p 9876:9876 \
-v /data/software/rocketmq-server/9876/logs:/root/logs \
-v /data/software/rocketmq-server/9876/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
foxiswho/rocketmq:server-4.7.0 \
sh mqnamesrv

#启动rocketmq-broker
docker run -d  \
--restart=always \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /data/software/rocketmq-broker/9876/logs:/root/logs \
-v /data/software/rocketmq-broker/9876/store:/root/store \
-v /data/software/rocketmq-broker/9876/conf/broker.conf:/opt/rocketmq-4.7.0/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
-e "autoCreateTopicEnable=true" \
foxiswho/rocketmq:broker-4.7.0 \
sh mqbroker -c /opt/rocketmq-4.7.0/conf/broker.conf


#启动RocketMQ的管理工具rocketmq-console
docker run -itd -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.21.132:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t styletang/rocketmq-console-ng:latest

五、容器检查

通过宿主机IP:8082访问rocketmq-console:
在这里插入图片描述
可以看到集群信息已读取到。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值