使用docker创建rocketMQ主从结构,使用

devtools/2025/1/18 7:23:55/

1、 创建目录

mkdir -p /docker/rocketmq/logs/nameserver-a
mkdir -p /docker/rocketmq/logs/nameserver-b
mkdir -p /docker/rocketmq/logs/broker-a
mkdir -p /docker/rocketmq/logs/broker-b
mkdir -p /docker/rocketmq/store/broker-a
mkdir -p /docker/rocketmq/store/broker-b
mkdir -p /docker/rocketmq/broker-a/
mkdir -p /docker/rocketmq/broker-b/
mkdir -p /docker/rocketmq/console-ng/data

rocketmq_12">2、创建rocketmq的配置文件

2.1 创建broker-a.conf(主节点)

vim /docker/rocketmq/broker-a/broker-a.conf
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = rocketmq-cluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTERASYNC_MASTERSLAVE;同步和异步表示MasterSlave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSHSYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,如果不配置
,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这种,主节点需要配置ip1和
ip2,从节点只需要配置ip1即可)
brokerIP1 = rmqbroker-a
brokerIP2 = rmqbroker-a-s
#nameServer地址,分号分割
namesrvAddr=rmqnamesrv-a:9876;rmqnamesrv-b:9876
#Broker 对外服务的监听端口,
listenPort = 10911
slaveReadEnable = true
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
#支持sql92过滤消息
enablePropertyFilter=true

2.2 创建broker-a-s.conf(从节点)

vim /docker/rocketmq/broker-b/broker-a-s.conf
root@DESKTOP-KIQB7GS:/home/jxren# ^C
root@DESKTOP-KIQB7GS:/home/jxren# cat  /docker/rocketmq/broker-a/broker-a-s.conf
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = rocketmq-cluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-b
#0表示Master,大于0表示不同的slave
brokerId = 1
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTERASYNC_MASTERSLAVE;同步和异步表示MasterSlave之间同步数据的机制;
brokerRole = SLAVE
#刷盘策略,取值为:ASYNC_FLUSHSYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,如果不配置
,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这种,主节点需要配置ip1和
ip2,从节点只需要配置ip1即可)
brokerIP1 = rmqbroker-a-s
#nameServer地址,分号分割
namesrvAddr=rmqnamesrv-a:9876;rmqnamesrv-b:9876
#Broker 对外服务的监听端口,
listenPort = 10911
slaveReadEnable = true
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
#支持sql92过滤消息
enablePropertyFilter=true

dockercomposerocketmqyml_83">3.构建docker-compose-rocketmq.yml文件

version: '3.5'
services:rmqnamesrv-a:image: apache/rocketmq:4.9.4container_name: rmqnamesrv-aports:- 9876:9876volumes:- /docker/rocketmq/logs/nameserver-a:/home/rocketmq/logs- /docker/rocketmq/store/nameserver-a:/home/rocketmq/storecommand: sh mqnamesrvnetworks:rmq:aliases:- rmqnamesrv-armqnamesrv-b:image: apache/rocketmq:4.9.4container_name: rmqnamesrv-bports:- 9877:9876volumes:- /docker/rocketmq/logs/nameserver-b:/home/rocketmq/logs- /docker/rocketmq/store/nameserver-b:/home/rocketmq/storecommand: sh mqnamesrvnetworks:rmq:aliases:- rmqnamesrv-brmqbroker-a:image: apache/rocketmq:4.9.4container_name: rmqbroker-aports:- 10911:10911volumes:- /docker/rocketmq/logs/broker-a/logs:/home/rocketmq/logs- /docker/rocketmq/store/broker-a/store:/home/rocketmq/store- /docker/rocketmq/broker-a/broker-a.conf:/opt/rocketmq/conf/broker-a.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: "rmqnamesrv-a:9876"JAVA_OPTS: " -Duser.home=/opt"JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"command: sh mqbroker -c /opt/rocketmq/conf/broker-a.conflinks:- rmqnamesrv-a:rmqnamesrv-a- rmqnamesrv-b:rmqnamesrv-bnetworks:rmq:aliases:- rmqbroker-armqbroker-a-s:image: apache/rocketmq:4.9.4container_name: rmqbroker-a-sports:- 10912:10911volumes:- /docker/rocketmq/logs/broker-a-s:/home/rocketmq/logs- /docker/rocketmq/store/broker-a-s:/home/rocketmq/store- /docker/rocketmq/broker-a/broker-a-s.conf:/home/docker/rocketmq/conf/broker-b.confenvironment:TZ: Asia/ShanghaiNAMESRV_ADDR: "rmqnamesrv-a:9876"JAVA_OPTS: " -Duser.home=/opt"JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"command: sh mqbroker -c /home/docker/rocketmq/conf/broker-b.conflinks:- rmqnamesrv-a:rmqnamesrv-a- rmqnamesrv-b:rmqnamesrv-bnetworks:rmq:aliases:- rmqbroker-a-srmqconsole:image: apacherocketmq/rocketmq-dashboardcontainer_name: rmqconsoleports:- 8087:8080environment:JAVA_OPTS: -Drocketmq.namesrv.addr=rmqnamesrv-a:9876;rmqnamesrv-b:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=falsenetworks:rmq:aliases:- rmqconsole# 自定义网络
networks:rmq:name: rmqdriver: bridge

4、拉到服务器上运行此文件

docker-compose -f docker-compose-rocketmq.yml up -d

5、查看http://127.0.0.1:8087/

在这里插入图片描述
显示此界面,表明运行成功


http://www.ppmy.cn/devtools/26413.html

相关文章

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack pg_repack 是一款非常有用的 PostgreSQL 扩展工具,它能够重新打包(repack)表和索引以回收空间并减少碎片,而且在这个过程中不会锁定表,允…

qt对话框功能介绍

1、颜色对话框 //方式一QColor color QColorDialog::getColor(Qt::red, this, QString::fromLocal8Bit("颜色对话框"),QColorDialog::ShowAlphaChannel);qDebug() <<"color:" <<color;//方式二QColorDialog dialog(Qt::red, this); // 创建对…

OpenResty 操作 Redis 和 MySQL

OpenResty 是一个基于 Nginx 的 Web 开发平台&#xff0c;它通过内置的方式集成了 LuaJIT&#xff0c;并内置了很多常用的第三方 Nginx 模块&#xff0c;使得开发人员可以使用 Lua 脚本来扩展 Nginx 的功能&#xff0c;这样就使得 OpenResty 可以非常方便地操作 Redis 和 MySQL…

leetcode_41.缺失的第一个正数

41. 缺失的第一个正数 题目描述&#xff1a;给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释…

SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别

文章目录 4 Ribbon负载均衡4.1 负载均衡原理4.2 源码解读4.3 负载均衡策略4.3.1 内置的负载均衡策略4.3.2 自定义负载均衡策略4.3.2.1 方式一&#xff1a;定义IRule4.3.2.2 方式二&#xff1a;配置文件 4.4 饥饿加载 5 Nacos注册中心5.1 认识和安装Nacos5.2 服务注册到Nacos5.3…

powershell 注册全局热键——提升效率小工具

powershell 注册全局热键 01 前言 在处理一些重复工作问题的时候&#xff0c;想搞一个小工具&#xff0c;配合全局快捷键来提高效率。因为是Windows系统&#xff0c;想到C#&#xff0c;但是又不想用VS开发&#xff0c;因为那样不够灵活&#xff0c;没办法随时修改随时用&…

SpringCloud02(远程调用Feign,网关Gateway,配置中心Nacos)

目录 一、远程调用Feign【要会用】 1. Feign简介 1 什么是Feign 2 准备基础代码 2. Feign入门【重点】 步骤 实现 测试 3. Feign配置Ribbon 1 说明 2 配置 4. Feign配置日志 1 说明 2 步骤 5. Feign使用优化 1 说明 2 步骤 6. 小结 二、网关Gateway 1. 网关…