docker 上部署RocketMQ
2022/7/15 6:21:17
本文主要是介绍docker 上部署RocketMQ,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
docker 上部署RocketMQ
RocketMQ 是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点
MQ好处: 1.应用解耦 2.流量削锋: 请求流量瞬间猛增,可能会把系统压垮。MQ可以将请求缓存起来,分散到很长一段时间去处理。提高系统的稳定性。 3.数据分发
缺点: 1.MQ宕机了,对业务造成影响 2.消息重复消费问题,消息丢失问题,消息的顺序性问题 3.数据一致性问题
具体的描述可参考官网文档:https://rocketmq.apache.org/docs/motivation/
RocketMQ 安装
1、docker 搜索RocketMQ 镜像
docker search rocketmq
2、拉取rocketmq 镜像,可以根据自己的需要选择不同的镜像包
docker pull rocketmqinc/rocketmq:4.4.0
3、创建rocketmq数据存储目录
mkdir -p /docker_data/rocketmq/data/namesrv/logs /docker_data/rocketmq/data/namesrv/store
4、运行RocketMQ
docker run -d -p 9876:9876 --name rmqnamesrv --restart=always -v /docker_data/rocketmq/data/namesrv/logs:/root/logs -v /docker_data/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv
Broker 安装
1、创建 broker.conf 配置文件 mkdir -p /docker_data/rocketmq/conf vi /docker_data/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_FLUSHnamesrvAddr = 172.0.0.1:9876
# 设置broker节点所在服务器的ip地址 brokerIP1 = 192.168.11.129 #剩余磁盘比例 diskMaxUsedSpaceRatio=99
2、运行broker
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --restart=always -v /docker_data/rocketmq/data/namesrv/logs:/root/logs -v /docker_data/rocketmq/data/namesrv/store:/root/store -v /docker_data/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
rocketmq-console-ng 安装
1、拉取rocketmq-console-ng 镜像
docker pull styletang/rocketmq-console-n
2、运行rocketmq-console-ng
docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.11.129:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng
3、开放防火墙端口
firewall-cmd --permanent --zone=public --add-port=9876/tcp firewall-cmd --permanent --zone=public --add-port=10911/tcp
4、重载防火墙配置文件
firewall-cmd --reload
在浏览器中访问:http://192.168.11.129:8080/#/
这篇关于docker 上部署RocketMQ的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程