标签:双备 -- broker 192.168 RocketMQ conf 9876 双主 rocketmq
RocketMQ双主双备集群搭建
一、RocketMQ
RocketMQ是阿里巴巴旗下一款开源的MQ框架,经历过双十一考研、Java编程语言实现,有非常好完整生态系统。
相比于Rabbitmq、kafka具有主要优势特性有:
- 支持事务消息(能够解决分布式事务的问题)
- 支持顺序消息(底层已经使用内存队列实现)
- 支持consumer端tag过滤,减少不必要的网络传输
二、集群结构
Name Server 服务注册发现 用于生产者获取Broker节点信息 类似eureka存储节点注册信息 去中心化思想
Broker 存储和负责转发消息 默认10911
Producer 生产者
Consumer 消费者
三、使用Docker搭建双主双备集群
主机 | 用途 |
---|---|
192.168.40.128 | namesrv-1,broker-a(slave), rocketmq-console |
192.168.40.129 | namesrv-2,broker-b(slave) |
192.168.40.130 | broker-a (master) |
192.168.40.131 | broker-b (master) |
-
所有服务器都需拉取镜像
docker pull rocketmqinc/rocketmq
1.启动namesrv
128、129 服务器启动namesrv
-
先创建挂载目录
mkdir -p /home/rocketmq/namesrv/logs mkdir -p /home/rocketmq/namesrv/store
-
启动namesrv服务
docker run -itd \ --name rmqnamesrv \ -p 9876:9876 \ -v /home/rocketmq/namesrv/logs:/root/logs \ -v /home/rocketmq/namesrv/store:/root/store \ -e "MAX_POSSIBLE_HEAP=100000000" \ rocketmqinc/rocketmq sh mqnamesrv
2.启动broker
所有服务器都需启动broker服务,
-
先创建挂载目录
mkdir -p /home/rocketmq/broker/logs mkdir -p /home/rocketmq/broker/store mkdir -p /home/rocketmq/broker/conf
-
所有服务器创建broker.conf文件。
vim /home/rocketmq/broker/conf/broker.conf
-
130 服务器 broker.conf(broker-a master )
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 192.168.40.130 autoCreateTopicEnable=true namesrvAddr=192.168.40.128:9876;192.168.40.129:9876
-
128 服务器 broker.conf(broker-a slave)
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 1 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 192.168.40.128 autoCreateTopicEnable=true namesrvAddr=192.168.40.128:9876;192.168.40.129:9876
-
131 服务器 broker.conf(broker-b master )
brokerClusterName = DefaultCluster brokerName = broker-b brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 192.168.40.131 autoCreateTopicEnable=true namesrvAddr=192.168.40.128:9876;192.168.40.129:9876
-
129 服务器 broker.conf(broker-b slave)
brokerClusterName = DefaultCluster brokerName = broker-b brokerId = 1 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 192.168.40.129 autoCreateTopicEnable=true namesrvAddr=192.168.40.128:9876;192.168.40.129:9876
-
参数说明
brokerClusterName: 为集群名称,所有的都填写一致才为一个群体。
brokerName: 集群中每个节点的名称。
brokerId: 当 brokerId 等于 0 时该节点为master节点,大于 0 为slave节点。
namesrvAddr:namesrv的地址。 -
所有服务器启动broker服务。
docker run -itd --name rmqbroker \ -p 10911:10911 -p 10909:10909 \ -v /home/rocketmq/broker/logs:/root/logs \ -v /home/rocketmq/broker/store:/root/store \ -v /home/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \ -e "NAMESRV_ADDR=192.168.40.128:9876;192.168.40.129:9876" \ -e "MAX_POSSIBLE_HEAP=200000000" \ rocketmqinc/rocketmq sh mqbroker -c ../conf/broker.conf
3.安装控制台
-
拉取镜像
docker pull styletang/rocketmq-console-ng
-
启动
docker run -itd --name rocketmq-console \ -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=192.168.40.128:9876;192.168.40.129:9876 -Drocketmq.config.isVIPChannel=false" \ -p 8096:8080 \ styletang/rocketmq-console-ng
4.释放端口
每台服务器都需释放端口。
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
firewall-cmd --zone=public --add-port=10909/tcp --permanent
firewall-cmd --zone=public --add-port=8096/tcp --permanent
firewall-cmd --reload
5.控制台效果
标签:双备,--,broker,192.168,RocketMQ,conf,9876,双主,rocketmq 来源: https://blog.csdn.net/qq_43692950/article/details/111823611
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。