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

embedded/2024/9/23 6:31:41/

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/embedded/32089.html

相关文章

JAVAEE—servlet的概念及使用,使用servlet接口实现一个表白墙

文章目录 servlet的概念静态页面和动态页面servlet的作用 写出一个servlet程序目录的创建设置smart tomcat编写helloworld servlet的概念 首先我们要搞明白什么是servlet,servlet是一种实现动态页面的技术,他是由tomcat提供给程序员的一组API可以帮助程…

STM32 F103C8T6学习笔记17:类IIC通信(SMBus协议)—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识:1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…

使用Sentio产品对Sui生态进行深入地数据分析和调试

Sentio最近在Sui上推出了Dash和Debugger这两个重要产品,为Sui生态系统中的开发者和用户提供了关键的工具,以增强其体验。这些产品是Sentio作为基础设施提供商的重要一步,使其与专门为Sui生态系统量身定制的索引、数据分析和监控能力并驾齐驱。…

CKEditor编辑器的简单使用方法,取值,赋值

先从官网下载包。CKEditor 4 - Download Latest Version. 一&#xff1a;在项目里引用JQ基础包和CK的JS包 <script src"/JS/jquery-3.4.1.js?v1.0"></script><script src"/ckeditor/ckeditor.js"></script> 二&#xff1a;在表…

Pytorch GPU版本安装

一、背景 记录一下安装Pytorch GPU版本过程。 由于手残&#xff0c;卸载了电脑上的显卡驱动&#xff0c;现在我连显卡类型是啥都不知道了。 总体思路&#xff1a;安装显卡驱动->安装cuda->安装pytorch库 二、安装显卡驱动 2.1 查看本地显卡型号 通过「DirectX 诊断工具…

HTML_CSS学习:CSS盒子模型

一、CSS中常用的长度单位 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>CSS中常用的长度单位</title><style>html{font-size: 40px;}#d1{/*第一种长度单位&…

python直接发布到网站wordpress之一只发布文字

本地环境&#xff1a;win10&#xff0c;python3.8.10。 远程服务器&#xff1a;是宝塔一键部署的wordpress6.5.2。 本地需要安装&#xff1a;pip38 install python-wordpress-xmlrpc。 本篇记录只发布文字&#xff08;不含图片&#xff09;&#xff0c;直接上代码&#xff1a…

边缘计算含义与应用简析

边缘计算概述 边缘计算使数据存储和处理靠近生成或收集数据的位置&#xff0c;而不是在位于数千公里的服务器上。它将通过保持灵活性在边缘无缝可靠地部署服务。它比云计算更安全&#xff0c;因为不需要传输数据。因此&#xff0c;在将数据从边缘移动到云端时&#xff0c;不用…