rocketmq双主双从部署+dashbord

这篇具有很好参考价值的文章主要介绍了rocketmq双主双从部署+dashbord。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、主机规划

主机 节点 地址
主机A namesrv 192.168.2.228:9876
主机A broker-a 192.168.2.228:10911
主机A broker-b 192.168.2.228:11911
主机B namesrv 192.168.2.229:9876
主机B broker-c 192.168.2.229:10911
主机B broker-d 192.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、A服务器部署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.228

deleteWhen = 04
fileReservedTime = 48

namesrvAddr = 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、A服务器部署broker-b

cd  /mydata/rocketmq/data
vi broker-b-s.conf
#输入以下内容

brokerClusterName = rocketmq-cluster
brokerName = broker-b

brokerId = 1

brokerIP1 = 192.168.2.228

deleteWhen = 04
fileReservedTime = 48

namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876

listenPort = 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.229

deleteWhen = 04
fileReservedTime = 48

namesrvAddr = 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-d

brokerId = 1

brokerIP1 = 192.168.2.229

deleteWhen = 04
fileReservedTime = 48

namesrvAddr = 192.168.2.228:9876;192.168.2.229:9876

listenPort = 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.1
    restart: always
    container_name: rmqnamesrv-a
    ports:
      - 9876:9876
    volumes:
      - /mydata/rocketmq/data/namesrv/logs:/opt/logs/rocketmqlogs
      - /mydata/rocketmq/data/namesrv/store:/opt/store
    environment:
      - JAVA_OPT_EXT=-Duser.home=/opt -Xms512m -Xmx512m -Xmn300m
    command: sh mqnamesrv


  rmqbroker-a:
    image: apache/rocketmq:4.7.1
    container_name: rmqbroker-a
    ports:
      - 10911:10911
      - 10909:10909
      - 10912:10912
    volumes:
      - /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.conf
    environment:
      - TZ=Asia/Shanghai
      - NAMESRV_ADDR=rmqnamesrv-a:9876
      - JAVA_OPTS=-Duser.home=/opt
      - JAVA_OPT_EXT=-server -Xms2048m -Xmx4096m -Xmn2048m
    command: sh mqbroker -c /home/rocketmq/rocketmq-4.7.1/conf/broker.conf autoCreateTopicEnable=true &
    links:
      - rmqnamesrv-a:rmqnamesrv-a
  rmqbroker-b-s:
    image: apache/rocketmq:4.7.1
    container_name: rmqbroker-b-s
    ports:
      - 11911:11911
      - 11909:11909
      - 11912:11912
    volumes:
      - /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.conf
    environment:
      - TZ=Asia/Shanghai
      - NAMESRV_ADDR=rmqnamesrv-a:9876
      - JAVA_OPTS=-Duser.home=/opt
      - JAVA_OPT_EXT=-server -Xms2048m -Xmx4096m -Xmn2048m
    command: 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,java-rocketmq,rocketmq,java

14、一键式部署的脚本,我自己写了一个,但暂时不提供,有需要的可以联系博主文章来源地址https://www.toymoban.com/news/detail-817253.html

到了这里,关于rocketmq双主双从部署+dashbord的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL - 读写分离、一主一从、双主双从

    读写分离 ,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。 MyCat实现读写分离的话,主要通过两个组件来实现: ​ readHost、writeHost 读写分离它的前提是基于主从复制 主

    2024年02月07日
    浏览(27)
  • MySQL运维16-双主双从读写分离

    在MySQL多主多从的架构配置中和双主双从是一样的,学会了双主双从的架构部署,多主多从的配置也同样就回了。下面以双主双从作为示例演示。其中一个主机maste1用于处理所有写请求,它的从机slave1和另外一台主机master2还有它的从机salve2负责所有读数据请求,当master1主机宕

    2024年02月04日
    浏览(35)
  • 搭建开源数据库中间件MyCat2-配置mysql数据库双主双从

    mycat2官网:MyCat2 前言:mycat2下载地址无法访问,不知道是不是被DNS污染了,还是需要搭梯子访问,所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。 架构:双主双从 配置:3台服务器,4台数据库;其中2台服务器为数据库各装主从配置,1台服务器

    2024年01月21日
    浏览(51)
  • 2023年最新sentinel-dashbord部署安装(保姆级别)

    目录 Sentinel-dashboard安装下载 前景提要 一、 构建环境 二、下载安装与配置 1、进入百度搜索:Sentinel 或访问地址:面向云原生微服务的高可用流控防护组件 2、进入git主界面,然后找到如图位置(此处为各个发布版本)。 3、看到版本信息,找到下载的位置进行下载就可以了

    2024年02月07日
    浏览(31)
  • rhel 8.7 部署 keepalived+haproxy 实现 mysql 双主高可用场景

    话不多说,直接开搞 ip 服务 172.72.0.116 keepalived+haproxy+mysql 172.72.0.137 keepalived+haproxy+mysql 172.72.0.100 VIP 部署前,大家先要确认集群之间的时间是否一致,集群类的服务,最怕时间不一致 Mysql 二进制文件下载地址 部署相关的操作,两台机器都需要执行,需要执行指定机器时,会额

    2024年02月11日
    浏览(32)
  • 银河麒麟V10 SP3 X86 二进制文件部署 mysql-5.7.29 GTID 半同步复制的双主架构

    麒麟镜像可以去下面的地方下载,需要自己注册一个账号 麒麟软件生态 Mysql 二进制文件下载地址 老生常谈的问题(这些问题都会影响部署的排查) 关掉 firewalld 关掉 selinux (银河麒麟默认会关闭 selinux) 我下载的海光 x86 版本的麒麟 mysql 的 AB 复制和 gtid 复制的优缺点 抄自

    2024年02月13日
    浏览(41)
  • 【RocketMQ】005-Docker 部署 RocketMQ

    MQ 镜像 可视化平台镜像 创建 nameserver 挂载目录 创建 broker 目录 创建 broker 配置文件目录 目录:/home/zibo/docker/rocketmq/data/conf vim broker.conf 启动 nameserver docker run : 这是Docker命令,用于创建和管理Docker容器。 -d : 这是一个选项,指示Docker在后台运行容器。 --restart=always : 这是一个

    2024年02月16日
    浏览(32)
  • kibana配置 dashbord,做可视化展示

    这里我使用的kibana版本为7.17版本。 语言选择为中文。 需要已经有es,已经有kibana,并且都能正常访问。 kibana的可视化界面,可以配置很多监控统计界面。非常方便,做数据的可视化展示。 这篇文章,做一个最简单的demo入入门 三、操作步骤 通过配置一个通配符,来选择要匹

    2024年03月12日
    浏览(36)
  • 【RocketMQ】RocketMQ 5.1.0版本Proxy集群模式部署实践

    为了支持长远的云原生发展,RocketMQ引入了一个全新的模块:Proxy,官方对RocketMQ客户端提供了独立的开源项目:https://github.com/apache/rocketmq-clients,如果要使用这个新的客户端,必须要使用Proxy作为endpoint。 Proxy有两种搭建方式: LOCAL:本地模式,顾名思义,通过追加参数,在

    2024年02月01日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包