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双主双从相关推荐

  1. Linux教程:RocketMq介绍以及集群服务搭建(双主双从同步双写)并安装可视化平台RocketMq-Dashboard

    一.介绍 1.什么是MQ MQ(Message Queue)消息队列,是基础数据结构中"先进先出"的一种数据结构.一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用 ...

  2. Mysql 集群双主双从安装使用详细讲解

    文章目录 下载Mysql 安装单机Mysql 配置Mysql集群 双Master配置 master1配置 master2配置 配置说明 双Slave配置 Slave1配置 Slave2配置 双 Mas ...

  3. docker 多个mysql_mysql8.0 利用docker容器安装配置多主多从集群

    1. 在/user/local/share/下创建mysql文件夹,在mysql文件夹目录下创建4个文件夹分别是: master1, master2, slave1, slave2分别在每个目录下建立 ...

  4. Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)

    之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...

  5. 【mysql】mysql的数据库主从2(双主双从)

    在搭建mysql的数据库双主双从之前,我们在四台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中: linux安装mysql :https://blog.csdn.net/wangyunz ...

  6. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  7. Mycat实现Mysql的一主一从和双主双从读写分离

    前提是: 已经有了一主一从的Mysql服务架构. 已经安装启动好了mycat.并对mycat有一定了解. 实现 修改mycat的schema配置文件: <!--schema 标签用于定义 MyC ...

  8. mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...

    既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...

  9. 数据库读写分离(单主单从+双主双从)

    单主单从 name ip node1 192.168.44.100 安装mycat node5 192.168.44.33 主 node3 192.168.44.11 从 读写分离的前提是首先要先将数 ...

  10. MyCat实现MySQL读写分离(双主双从多库)

    在数据库集群架构中,主数据库负责处理事务性查询(写入操作),而从数据库只负责处理select查询(读操作),这样可以提高数据库整体读写性能.主数据库另外一个功能就是负责将数据变更同步到从数据库中. 读 ...

最新文章

  1. 8工具来优化你的图像
  2. python使用openpyxl操作excel总结
  3. [渝粤教育] 中国地质大学 运筹学 复习题
  4. Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS
  5. linux默认权限二进制与,Linux系统文件的默认权限和特殊权限
  6. petshop 数据库
  7. 【find】Linux中find常见用法示例
  8. 【一步一步】Spring 源码环境搭建
  9. JavaWeb案例:抽奖小游戏
  10. Go 依赖注入库dig
  11. Apache Doris ODBC mysql外表注意事项
  12. 2019支付宝小程序技术专场招募
  13. android代码审计框架,路印协议已完成第三方代码安全审计
  14. 服务器时区不对微信支付报错,微信支付设置time_expire后提示【交易有效截止时间非法】问题...
  15. uClinux编译方法
  16. 白鹭科技挂牌新三板 连续三年亏损
  17. 阿里企业邮箱526 Authentication failure
  18. vert.x中future的简单使用
  19. macOS系统中修改用户头像点击照片时显示未找到照片,且图库中有照片的解决办法
  20. python爬取付费漫画_python selenium爬取kuku漫画

热门文章

  1. JSON数据实际应用
  2. cygwin1.dll is missing from your computer
  3. InnoDB脏页,重做日志文件
  4. java 释放锁,在Java中以原子方式释放多个锁
  5. MySQL最好的写的_mysql中写sql的好习惯
  6. udev和mdev hotplug
  7. (十三)洞悉linux下的Netfilteriptables:为防火墙增添功能模块【实战】
  8. FRR BGP代码分析20 -- 6PE\6VPE
  9. Performance Engineering of Software Systems (四) ——工具使用
  10. freeswitch录音功能