当前位置: 首页 > news >正文

rocketmq双主双从部署+dashbord

1、主机规划

主机节点地址
主机Anamesrv192.168.2.228:9876
主机Abroker-a192.168.2.228:10911
主机Abroker-b192.168.2.228:11911
主机Bnamesrv192.168.2.229:9876
主机Bbroker-c192.168.2.229:10911
主机Bbroker-d192.168.2.229:11911

2、两台主机都需要执行,创建mq需要的文件

mkdir -p /mydata/rocketmq/data/namesrv/logs
sudo chmod 777  /mydata/rocketmq/data/namesrv/logs
mkdir -p /mydata/rocketmq/data/namesrv/store
chmod 777  /mydata/rocketmq/data/namesrv/store
mkdir -p /mydata/rocketmq/data/broker-a/logs
mkdir -p /mydata/rocketmq/data/broker-a/store
mkdir -p /mydata/rocketmq/etc/broker-a
chmod 777 /mydata/rocketmq/data/broker-a/logs
chmod 777 /mydata/rocketmq/data/broker-a/store
chmod 777 /mydata/rocketmq/etc/broker-a
mkdir -p /mydata/rocketmq/data/broker-b/logs
mkdir -p /mydata/rocketmq/data/broker-b/store
mkdir -p /mydata/rocketmq/etc/broker-b
chmod 777 /mydata/rocketmq/data/broker-b/logs
chmod 777 /mydata/rocketmq/data/broker-b/store
chmod 777 /mydata/rocketmq/etc/broker-b

3、部署broker-a

cd  /mydata/rocketmq/data
vi broker-a.conf
#输入以下内容brokerClusterName = rocketmq-cluster
brokerName = broker-a# 0表示broker master 非0表示 broker slaver
brokerId = 0# brokerIP1 当前broker监听的IP
brokerIP1 = 192.168.2.228# brokerIP2 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
brokerIP2 = 192.168.2.228deleteWhen = 04
fileReservedTime = 48namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876# 是否能够自动创建topic
autoCreateTopicEnable = true#Broker 对外服务的监听端口, 默认10911
# listenPort = 10911#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

4、部署broker-b

cd  /mydata/rocketmq/data
vi broker-b-s.conf
#输入以下内容brokerClusterName = rocketmq-cluster
brokerName = broker-bbrokerId = 1brokerIP1 = 192.168.2.228deleteWhen = 04
fileReservedTime = 48namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876listenPort = 11911#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

5、主机B部署broker-c

cd  /mydata/rocketmq/data
vi broker-a.conf
#输入以下内容brokerClusterName = rocketmq-cluster
brokerName = broker-c# 0表示broker master 非0表示 broker slaver
brokerId = 0# brokerIP1 当前broker监听的IP
brokerIP1 = 192.168.2.229# brokerIP2 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
brokerIP2 = 192.168.2.229deleteWhen = 04
fileReservedTime = 48namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876# 是否能够自动创建topic
autoCreateTopicEnable = true#Broker 对外服务的监听端口, 默认10911
# listenPort = 10911#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

6、主机B部署broker-d

cd  /mydata/rocketmq/data
vi broker-b-s.conf
#输入以下内容brokerClusterName = rocketmq-cluster
brokerName = broker-dbrokerId = 1brokerIP1 = 192.168.2.229deleteWhen = 04
fileReservedTime = 48namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876listenPort = 11911#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

7、下载dockercompose文件,如果主机没有网络可以使用有网络的电脑下载上传到/usr/local/bin目录

#下载到/usr/local/bin目录
curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

8、两台主机都编辑docker-compose.yml

cd /usr/local/bin
vi docker-compose.yml
#输入以下内容
version: '4.7'
services:rmqnamesrv-a:image: apache/rocketmq:4.7.1restart: alwayscontainer_name: rmqnamesrv-aports:- 9876:9876volumes:- /mydata/rocketmq/data/namesrv/logs:/opt/logs/rocketmqlogs- /mydata/rocketmq/data/namesrv/store:/opt/storeenvironment:- JAVA_OPT_EXT=-Duser.home=/opt -Xms512m -Xmx512m -Xmn300mcommand: sh mqnamesrvrmqbroker-a:image: apache/rocketmq:4.7.1container_name: rmqbroker-aports:- 10911:10911- 10909:10909- 10912:10912volumes:- /mydata/rocketmq/data/broker-a/logs:/home/rocketmq/logs- /mydata/rocketmq/data/broker-a/store:/home/rocketmq/store- /mydata/rocketmq/data/broker-a.conf:/home/rocketmq/rocketmq-4.7.1/conf/broker.confenvironment:- TZ=Asia/Shanghai- NAMESRV_ADDR=rmqnamesrv-a:9876- JAVA_OPTS=-Duser.home=/opt- JAVA_OPT_EXT=-server -Xms2048m -Xmx4096m -Xmn2048mcommand: sh mqbroker -c /home/rocketmq/rocketmq-4.7.1/conf/broker.conf autoCreateTopicEnable=true &links:- rmqnamesrv-a:rmqnamesrv-armqbroker-b-s:image: apache/rocketmq:4.7.1container_name: rmqbroker-b-sports:- 11911:11911- 11909:11909- 11912:11912volumes:- /mydata/rocketmq/data/broker-b/logs:/home/rocketmq/logs- /mydata/rocketmq/data/broker-b/store:/home/rocketmq/store- /mydata/rocketmq/data/broker-b-s.conf:/home/rocketmq/rocketmq-4.7.1/conf/broker.confenvironment:- TZ=Asia/Shanghai- NAMESRV_ADDR=rmqnamesrv-a:9876- JAVA_OPTS=-Duser.home=/opt- JAVA_OPT_EXT=-server -Xms2048m -Xmx4096m -Xmn2048mcommand: sh mqbroker -c /home/rocketmq/rocketmq-4.7.1/conf/broker.conf autoCreateTopicEnable=true &links:- rmqnamesrv-a:rmqnamesrv-a

9、启动部署

#部署启动
docker compose up -d
#卸载命令,不要执行
docker compose down

10、自定义dashbord密码

#部署启动
mkdir -p /apps/rocketmq-dashboard/data
vi users.properties
#输入以下内容
#超级管理员
admin=admin,1
#普通用户
xkc=xkc

11、dashbord启动

docker run -d -it --name dashboard -p 18081:8080 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.2.228:9876;192.168.2.229:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false  -Drocketmq.config.loginRequired=true" -v /apps/rocketmq-dashboard/data:/tmp/rocketmq-console/data  apacherocketmq/rocketmq-dashboard:latest /bin/bash 

12、自定义的nginx负载均衡配置,需要配置nginx.conf文件,网上有很多坑说配置http模块,实际上配置http模块没法对mq负载均衡,正确需要在stream模块追加以下配置,如下:

stream {upstream mqserver {server 192.168.2.227:9876;server 192.168.2.228:9876;}server {listen 888;proxy_connect_timeout 1s;proxy_timeout 3s;proxy_pass mqserver;}
} 

13、一键式部署的脚本,我自己写了一个,但暂时不提供,有需要的可以联系博主

相关文章:

rocketmq双主双从部署+dashbord

1、主机规划 主机节点地址主机Anamesrv192.168.2.228:9876主机Abroker-a192.168.2.228:10911主机Abroker-b192.168.2.228:11911主机Bnamesrv192.168.2.229:9876主机Bbroker-c192.168.2.229:10911主机Bbroker-d192.168.2.229:11911 2、两台主机都需要执行,创建mq需…...

OpenHarmony当前进展和未来趋势

操作系统自20世纪50年代诞生,经历了从专用操作系统到通用操作系统的转变。整体可以将操作系统的发展历史分为3个阶段:PC时代、移动互联网时代、万物互联时代。 PC时代主要以计算机为主,用户规模从1970年的10亿增长到1990年的30亿。这一时代诞…...

php学习

php基础语法 一 php程序 1.php标记 开始标记<?php 和结束标记 ?>中间写 PHP 代码 当解析一个文件时&#xff0c;PHP 会寻找起始和结束标记&#xff0c;也就是告诉php 开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去&#xff…...

ruoyi框架教程

心血来潮&#xff0c;写一篇关于ruoyi【若依】框架从0-1的教程。说一下使用感受吧&#xff0c;如果有一个架构师或者老手已经把架构改造完成也能指导你如何快速上手&#xff0c;那么你在后面的增删改查系列开发起来会如鱼得水。如果没有人改造&#xff0c;也没有人教你&#xf…...

通过浏览器URL地址,5分钟内渗透你的网站!很刑很可拷!

今天我来带大家简单渗透一个小破站&#xff0c;通过这个案例&#xff0c;让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作。这些措施的目的是为了保护网站和系统的安全性。如果不及时升级和修复漏洞&#xff0c;你就等着被黑客攻击吧&…...

dubbo:深入理解Apache Dubbo与实战

dubbo核心组件 层次名 作 用 Service 业务层。包括业务代码的接口与实现&#xff0c;即开发者实现的业务代码 config 配置层。主要围绕ServiceConfig &#xff08;暴露的服务配置&#xff09;和ReferenceConfig &#xff08;引用的服务配置&#xff09;两个实现类展开&#xf…...

写着玩的程序:pycharm实现无限弹窗程序(非病毒程序,仅整蛊使用)

运行环境 PyCharm 2023.2.1 python3.11 具体内容 源代码 import tkinter as tk from tkinter import messagebox import threadingclass PopupGenerator:def __init__(self):self.root tk.Tk()self.root.geometry("200x120")self.root.title("无限弹窗&qu…...

计算机网络——运输层(2)暨小程送书

计算机网络——运输层&#xff08;2&#xff09;暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 运输层&#xff08;2&#xff09;TCP/IP对比TCP&#xff08;传输控制协议&#xff09;&#xff1a;IP&#xff08;互联网协议&#xff09;&#xff1a;总结 拥塞…...

FPGA高端项目:Xilinx Zynq7020 系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案本方案在Xilinx Kintex7 系列FPGA上的应用本方案在Xilinx Artix7 系列FPGA上的应用本方案在国产FPGA紫光同创系列上的应用本方案在国产FPGA高云系列上的应…...

【分布式技术专题】「分布式技术架构」 探索Tomcat集群架构原理和开发分析指南

探索Tomcat技术架构设计模式的奥秘 Tomcat集群原理Tomcat集群能带来什么Tomcat集群产生什么问题Tomcat 单服务体系架构Tomcat集群"简单版"首先要解决Session共享的问题典型负载均衡策略分析Session管理-Session Sticky粘滞会话&#xff1a;Session管理-Session 复制S…...

c++类与对象(五):友元、内部类、临时对象、匿名对象

上次重新再次补全了构造函数的内容&#xff0c;以及static成员&#xff1a;C类与对象&#xff08;四&#xff09;&#xff1a;再谈构造函数&#xff08;详解初始化列表&#xff09;、Static成员 今天就来进行类与对象最后一部分的内容 文章目录 1.友元1.1友元函数1.2友元类 2.内…...

细数语音识别中的几个former

随着Transformer在人工智能领域掀起了一轮技术革命&#xff0c;越来越多的领域开始使用基于Transformer的网络结构。目前在语音识别领域中&#xff0c;Tranformer已经取代了传统ASR建模方式。近几年关于ASR的研究工作很多都是基于Transformer的改进&#xff0c;本文将介绍其中应…...

【MySQL进阶】锁

文章目录 锁概述全局锁语法特点 表级锁表锁意向锁 行级锁行锁间隙锁&临键锁 面试了解数据库的锁吗&#xff1f;介绍一下间隙锁InnoDB中行级锁是怎么实现的&#xff1f;数据库在什么情况下会发生死锁&#xff1f;说说数据库死锁的解决办法 锁 概述 锁机制&#xff1a;数据库…...

redis复制和分区:主从复制、哨兵模式和集群模式

概述 在 Redis 中&#xff0c;复制和分区是用于数据冗余和性能扩展的关键特性。以下是主从复制、哨兵模式和集群模式的工作原理的简要概述&#xff1a; 主从复制 (Replication) 基本概念&#xff1a;Redis 的主从复制功能允许多个 Redis 服务器具有相同的数据副本。这在读取操…...

个人实现的QT拼图游戏(开源),QT拖拽事件详解

文章目录 效果图引言玩法 拖拽概念基本概念如何在Qt中使用拖放注意事项 游戏关键问题总结 效果图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c6dd66befd314442adf07e1dec0d550c.png 引言 在学习QT demo时&#xff0c;发现有一个拼图demo&#xff0c;介绍拖…...

gin渲染篇

1. 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf package mainimport ("github.com/gin-gonic/gin""github.com/gin-gonic/gin/testdata/protoexample" )// 多种响应方式 func main() {// 1.创建路由// 默认使用了2个中…...

第三方控价服务商怎么选

用对了方法&#xff0c;事半功倍&#xff0c;品牌控价也是如此&#xff0c;品牌方在治理工作中&#xff0c;如果选择自建团队进行处理&#xff0c;需要包含对数据技术的抓取团队&#xff0c;还要有对治理规则熟悉的操作团队&#xff0c;涉及人员和系统&#xff0c;费用成本相应…...

大模型的学习路线图推荐—多维度深度分析【云驻共创】

&#x1f432;本文背景 近年来&#xff0c;随着深度学习技术的迅猛发展&#xff0c;大模型已经成为学术界和工业界的热门话题。大模型具有数亿到数十亿的参数&#xff0c;这使得它们在处理复杂任务时表现得更为出色&#xff0c;但同时也对计算资源和数据量提出了更高的要求。 …...

【学习】focal loss 损失函数

focal loss用于解决正负样本的不均衡情况 通常我们需要预测的正样本要少于负样本&#xff0c;正负样本分布不均衡会带来什么影响&#xff1f;主要是两个方面。 样本不均衡的话&#xff0c;训练是低效不充分的。因为困难的正样本数量较少&#xff0c;大部分时间都在学习没有用…...

几个好玩好用的AI站点

本文作者系360奇舞团前端开发工程师 ai能力在去年一年飞速增长&#xff0c;各种AI产品如雨后春笋般冒出来&#xff0c;在各种垂直领域上似乎都有AI的身影出现&#xff0c;今天就总结几款好玩的场景&#xff0c;看大家工作生活中是否会用到。 先说一个比较重要的消息是&#xff…...

Spider2-V:多模态AI智能体框架,连接LLM与GUI自动化的工程实践

1. 项目概述&#xff1a;一个面向开发者的多模态智能体框架 最近在AI应用开发圈子里&#xff0c;一个名为“Spider2-V”的项目引起了我的注意。它不是一个简单的聊天机器人&#xff0c;也不是一个孤立的图像识别模型&#xff0c;而是一个旨在将大型语言模型&#xff08;LLM&…...

构建多模型智能客服时如何借助 Taotoken 实现灵活路由与降级

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建多模型智能客服时如何借助 Taotoken 实现灵活路由与降级 在构建企业级智能客服系统时&#xff0c;服务的稳定性和响应能力至关…...

3分钟掌握:U校园智能刷课自动化终极实战指南

3分钟掌握&#xff1a;U校园智能刷课自动化终极实战指南 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为重复的网课练习消耗宝贵时间而烦恼吗&#xff1f;AutoUnipus智能刷…...

初创团队如何利用Taotoken控制AI实验成本并快速迭代产品

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创团队如何利用Taotoken控制AI实验成本并快速迭代产品 对于资源有限的初创团队而言&#xff0c;在开发AI功能原型时&#xff0c;…...

进化智能体实战:从基因编码到种群优化的完整实现指南

1. 项目概述&#xff1a;从蓝图到智能体&#xff0c;一次开源协作的深度实践最近在开源社区里&#xff0c;一个名为planck-lab/hermes-evolving-agents-public-blueprint的项目引起了我的注意。乍一看这个标题&#xff0c;它像是一个技术蓝图或公开的设计文档&#xff0c;但深入…...

Visual C++运行库终极指南:如何3分钟解决Windows软件启动失败问题

Visual C运行库终极指南&#xff1a;如何3分钟解决Windows软件启动失败问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的场景&#xf…...

连接池为什么重要?从一次“数据库没打满,但应用越来越慢”的事故说起

连接池为什么重要&#xff1f;从一次“数据库没打满&#xff0c;但应用越来越慢”的事故说起 在很多后端系统里&#xff0c;数据库往往是最容易被怀疑的对象。 接口慢了&#xff0c;第一反应是&#xff1a; “是不是数据库扛不住了&#xff1f;” 订单页卡住了&#xff0c;第一…...

终极macOS清理神器:Pearcleaner 3步彻底卸载应用不留痕迹

终极macOS清理神器&#xff1a;Pearcleaner 3步彻底卸载应用不留痕迹 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾将macOS应用拖入废纸篓后&…...

Kafka Connect集群部署踩坑实录:从单机到高可用的完整配置与监控方案

Kafka Connect生产级部署实战&#xff1a;高可用架构设计与监控体系构建 当数据管道成为企业核心基础设施时&#xff0c;Kafka Connect的稳定性直接关系到业务连续性。去年某电商大促期间&#xff0c;因单点故障导致数据同步延迟6小时的教训仍历历在目——这正是我们需要深入探…...

NS-USBLoader终极指南:3步搞定Switch游戏管理与RCM注入的完整教程

NS-USBLoader终极指南&#xff1a;3步搞定Switch游戏管理与RCM注入的完整教程 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitcode.c…...