docker单机安装rocketmq双主双从
1. 环境准备
阿某云:centos 7,47.*.*.*(172.*.*.*),在安全组策略开启8000-9000之间的端口访问权限。
注意一定要开放安全组端口,否则无法访问console控制台
2. 创建目录
mkdir -p /usr/local/rocketmq/logs/nameserver-1
mkdir -p /usr/local/rocketmq/logs/nameserver-2
mkdir -p /usr/local/rocketmq/logs/broker-master-1
mkdir -p /usr/local/rocketmq/logs/broker-master-2
mkdir -p /usr/local/rocketmq/logs/broker-slave-1
mkdir -p /usr/local/rocketmq/logs/broker-slave-2mkdir -p /usr/local/rocketmq/store/nameserver-1
mkdir -p /usr/local/rocketmq/store/nameserver-2
mkdir -p /usr/local/rocketmq/store/broker-master-1
mkdir -p /usr/local/rocketmq/store/broker-master-2
mkdir -p /usr/local/rocketmq/store/broker-slave-1
mkdir -p /usr/local/rocketmq/store/broker-slave-2mkdir -p /usr/local/rocketmq/conf/broker-master-1
mkdir -p /usr/local/rocketmq/conf/broker-master-2
mkdir -p /usr/local/rocketmq/conf/broker-slave-1
mkdir -p /usr/local/rocketmq/conf/broker-slave-2
3. 获取镜像
nameserver镜像docker pull foxiswho/rocketmq:server-4.3.2broker镜像
docker pull foxiswho/rocketmq:broker-4.3.2rocketmq-console镜像
docker pull styletang/rocketmq-console-ng
4. 创建容器
nameserver容器
docker create -p 8201:9876 --name rmq-nameserver-1 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-v /usr/local/rocketmq/logs/nameserver-1:/opt/logs \
-v /usr/local/rocketmq/store/nameserver-1:/opt/store \
foxiswho/rocketmq:server-4.3.2docker create -p 8202:9876 --name rmq-nameserver-2 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-v /usr/local/rocketmq/logs/nameserver-2:/opt/logs \
-v /usr/local/rocketmq/store/nameserver-2:/opt/store \
foxiswho/rocketmq:server-4.3.2
broker容器
docker create --net host --name rmq-master-1 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /usr/local/rocketmq/conf/broker-master-1/broker.conf:/etc/rocketmq/broker.conf \
-v /usr/local/rocketmq/logs/broker-master-1:/opt/logs \
-v /usr/local/rocketmq/store/broker-master-1:/opt/store \
foxiswho/rocketmq:broker-4.3.2docker create --net host --name rmq-master-2 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /usr/local/rocketmq/conf/broker-master-2/broker.conf:/etc/rocketmq/broker.conf \
-v /usr/local/rocketmq/logs/broker-master-2:/opt/logs \
-v /usr/local/rocketmq/store/broker-master-2:/opt/store \
foxiswho/rocketmq:broker-4.3.2docker create --net host --name rmq-slave-1 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /usr/local/rocketmq/conf/broker-slave-1/broker.conf:/etc/rocketmq/broker.conf \
-v /usr/local/rocketmq/logs/broker-slave-1:/opt/logs \
-v /usr/local/rocketmq/store/broker-slave-1:/opt/store \
foxiswho/rocketmq:broker-4.3.2docker create --net host --name rmq-slave-2 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /usr/local/rocketmq/conf/broker-slave-2/broker.conf:/etc/rocketmq/broker.conf \
-v /usr/local/rocketmq/logs/broker-slave-2:/opt/logs \
-v /usr/local/rocketmq/store/broker-slave-2:/opt/store \
foxiswho/rocketmq:broker-4.3.2
5. 创建配置文件
注意:
1.brokerId 从节点错误,主节点是0,从节点是1
2.主从复制模式:brokerRole,总共3种模式,如果是从节点 该值是 SLAVE
3.刷盘机制:flushDiskType=ASYNC_FLUSH,异步刷盘 同步刷盘
如何选择:主从复制选择同步复制保证消息不丢失,异步刷盘保证效率
cat > /usr/local/rocketmq/conf/broker-master-1/broker.conf << EOF
listenPort=8111
brokerIP1=47.103.*.*
brokerClusterName=DefaultCluster
brokerName=broker-m1
brokerRole=SYNC_MASTER
brokerId=0
deleteWhen=04
fileReservedTime=48
flushDiskType=ASYNC_FLUSH
namesrvAddr=47.103.*.*:8201;47.103.*.*:8202
EOFcat > /usr/local/rocketmq/conf/broker-master-2/broker.conf << EOF
listenPort=8211
brokerIP1=47.103.*.*
brokerClusterName=DefaultCluster
brokerName=broker-m2
brokerRole=SYNC_MASTER
brokerId=0
deleteWhen=04
fileReservedTime=48
flushDiskType=ASYNC_FLUSH
namesrvAddr=47.103.*.*:8201;47.103.*.*:8202
EOFcat > /usr/local/rocketmq/conf/broker-slave-1/broker.conf << EOF
listenPort=8115
brokerIP1=47.103.*.*
brokerClusterName=DefaultCluster
brokerName=broker-s1
brokerRole=SLAVE
brokerId=1
deleteWhen=04
fileReservedTime=48
flushDiskType=ASYNC_FLUSH
namesrvAddr=47.103.*.*:8201;47.103.*.*:8202
EOFcat > /usr/local/rocketmq/conf/broker-slave-2/broker.conf << EOF
listenPort=8215
brokerIP1=47.103.*.*
brokerClusterName=DefaultCluster
brokerName=broker-s2
brokerRole=SLAVE
brokerId=1
deleteWhen=04
fileReservedTime=48
flushDiskType=ASYNC_FLUSH
namesrvAddr=47.103.*.*:8201;47.103.*.*:8202
EOF
6. 启动容器
先启动nameserver
docker start rmq-nameserver-1 rmq-nameserver-2启动broker
docker start rmq-master-1 rmq-master-2 rmq-slave-1 rmq-slave-2启动rocketmq-console
docker run -dit --name rocketmq-console-ng -e "JAVA_OPTS=-Drocketmq.namesrv.addr=47.103.*.*:8201;47.103.*.*:8202 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8203:8080 styletang/rocketmq-console-ng
7.访问
http://47.103.*.*:8203/#/cluster
8.坑
1.启动容器失败
原因:启动broker容器,挂载目睹写错了,如下图位置写反了,写成了
/usr/local/rocketmq/broker-master-1/conf
处理
1.docker ps -a 查看所有创建的容器,包含未启动的
2.docker stop containerID 停止broker容器
3.docker rm -f containerID 删除容器
4.重新创建容器,执行步骤4
2.访问console失败
未开放安全组
3.控制台没有broker集群信息,如下图,没有
原因:配置文件中配置的naneserver端口不对
参考:
https://www.cnblogs.com/qdhxhz/p/11094624.html
https://www.cnblogs.com/zhou-920644981/p/14569126.html
http://www.mydlq.club/article/96/
docker单机安装rocketmq双主双从相关推荐
- Linux教程:RocketMq介绍以及集群服务搭建(双主双从同步双写)并安装可视化平台RocketMq-Dashboard
一.介绍 1.什么是MQ MQ(Message Queue)消息队列,是基础数据结构中"先进先出"的一种数据结构.一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用 ...
- Mysql 集群双主双从安装使用详细讲解
文章目录 下载Mysql 安装单机Mysql 配置Mysql集群 双Master配置 master1配置 master2配置 配置说明 双Slave配置 Slave1配置 Slave2配置 双 Mas ...
- docker 多个mysql_mysql8.0 利用docker容器安装配置多主多从集群
1. 在/user/local/share/下创建mysql文件夹,在mysql文件夹目录下创建4个文件夹分别是: master1, master2, slave1, slave2分别在每个目录下建立 ...
- Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)
之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...
- 【mysql】mysql的数据库主从2(双主双从)
在搭建mysql的数据库双主双从之前,我们在四台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中: linux安装mysql :https://blog.csdn.net/wangyunz ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...
[Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...
- Mycat实现Mysql的一主一从和双主双从读写分离
前提是: 已经有了一主一从的Mysql服务架构. 已经安装启动好了mycat.并对mycat有一定了解. 实现 修改mycat的schema配置文件: <!--schema 标签用于定义 MyC ...
- mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...
既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...
- 数据库读写分离(单主单从+双主双从)
单主单从 name ip node1 192.168.44.100 安装mycat node5 192.168.44.33 主 node3 192.168.44.11 从 读写分离的前提是首先要先将数 ...
- MyCat实现MySQL读写分离(双主双从多库)
在数据库集群架构中,主数据库负责处理事务性查询(写入操作),而从数据库只负责处理select查询(读操作),这样可以提高数据库整体读写性能.主数据库另外一个功能就是负责将数据变更同步到从数据库中. 读 ...
最新文章
- 8工具来优化你的图像
- python使用openpyxl操作excel总结
- [渝粤教育] 中国地质大学 运筹学 复习题
- Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS
- linux默认权限二进制与,Linux系统文件的默认权限和特殊权限
- petshop 数据库
- 【find】Linux中find常见用法示例
- 【一步一步】Spring 源码环境搭建
- JavaWeb案例:抽奖小游戏
- Go 依赖注入库dig
- Apache Doris ODBC mysql外表注意事项
- 2019支付宝小程序技术专场招募
- android代码审计框架,路印协议已完成第三方代码安全审计
- 服务器时区不对微信支付报错,微信支付设置time_expire后提示【交易有效截止时间非法】问题...
- uClinux编译方法
- 白鹭科技挂牌新三板 连续三年亏损
- 阿里企业邮箱526 Authentication failure
- vert.x中future的简单使用
- macOS系统中修改用户头像点击照片时显示未找到照片,且图库中有照片的解决办法
- python爬取付费漫画_python selenium爬取kuku漫画
热门文章
- JSON数据实际应用
- cygwin1.dll is missing from your computer
- InnoDB脏页,重做日志文件
- java 释放锁,在Java中以原子方式释放多个锁
- MySQL最好的写的_mysql中写sql的好习惯
- udev和mdev hotplug
- (十三)洞悉linux下的Netfilteriptables:为防火墙增添功能模块【实战】
- FRR BGP代码分析20 -- 6PE\6VPE
- Performance Engineering of Software Systems (四) ——工具使用
- freeswitch录音功能