• 【RocketMQ集群】Linux搭建RocketMQ双主双从集群


    在当今大数据时代,消息队列系统成为了构建高可用、可扩展和可靠的分布式应用的重要组件之一。而Apache RocketMQ作为一款开源的分布式消息中间件,以其高吞吐量、低延迟和可靠性而备受青睐。为了满足大规模应用的需求,搭建RocketMQ集群是一种常见的部署方式。

    本文将介绍如何在Linux系统上搭建RocketMQ双主双从集群。通过搭建双主双从集群,我们可以实现消息的高可用性和容错性,确保在单个Broker节点故障时仍能保持服务的正常运行。

    首先,让我们了解一下RocketMQ集群的基本概念。RocketMQ集群由多个Broker节点组成,每个节点负责存储和传递消息。在双主双从集群中,我们将集群划分为两个主节点和两个从节点。主节点负责接收和处理消息的写入请求,而从节点则负责复制主节点的消息,并提供读取请求的服务。通过这种方式,我们可以实现消息的冗余备份和负载均衡,提高系统的可用性和性能。

    这次我们要搭建的是双主双从集群异步除了这种集群官方还支持以下几种集群方式:

    集群搭建方式冗余备份同步方式写入性能数据一致性可用性链接
    单主单从集群【Spring Cloud Alibaba】Linux安装RocketMQ
    多主多从集群
    双主双从集群异步异步
    双主双从集群同步同步

    从上表可以看出,不同的集群搭建方式在冗余备份、同步方式、写入性能、数据一致性和可用性等方面存在差异。

    • 冗余备份:单主单从集群没有冗余备份,其他集群搭建方式都有冗余备份。
    • 同步方式:双主双从集群异步模式是异步复制,而双主双从集群同步模式和其他集群搭建方式是同步复制。
    • 写入性能:单主单从集群和多主多从集群具有较高的写入性能,而双主双从集群异步模式的写入性能也较高,但双主双从集群同步模式的写入性能较低。
    • 数据一致性:双主双从集群同步模式具有较高的数据一致性,其他集群搭建方式的数据一致性较低。
    • 可用性:多主多从集群和双主双从集群(异步和同步模式)具有较高的可用性,而单主单从集群的可用性较低。

    需要根据具体的业务需求和性能要求来选择适合的集群搭建方式。如果对于消息的可用性要求较高,可以选择多主多从集群或双主双从集群。如果对于写入性能要求较高,可以选择单主单从集群或双主双从集群异步模式。如果对于数据一致性要求较高,可以选择双主双从集群同步模式。

    这次的搭建我们需要准备以下的服务器环境:

    ip角色名称
    192.168.65.130Linux003
    192.168.65.131Linux004
    192.168.65.132Linux001
    192.168.65.133Linux002

    第一步,安装前的准备

    安装的这些步骤博主原来都写过。

    安装jdk:Linux安装Java环境(OracleJDK)
    安装并解压rockemq:【Spring Cloud Alibaba】Linux安装RocketMQ

    关闭四台服务器的防火墙:

     systemctl stop firewalld.service 
    
    • 1

    第二步,启动NameServer

    我们使用下面两台机器作为NameServer的集群

    ip角色名称
    192.168.65.132Linux001
    192.168.65.133Linux002

    两台机器执行一样的操作:

    运行bin文件夹里面的mqnamesrv脚本

    sh mqnamesrv
    
    • 1

    在这里插入图片描述
    出现下面语句则启动成功

    The Name Server boot success. serializeType=JSON
    
    • 1

    编写启动脚本后台运行

    vim startupmqnamesrv.sh
    
    • 1

    添加内容如下

    nohup sh bin/mqnamesrv &
    
    • 1

    运行启动脚本即可后台运行

    在这里插入图片描述

    在这里插入图片描述

    第三步,编辑双主节点配置文件

    配置文件描述分配
    broker-a.propertiesBroker A主节点的配置文件,用于配置Broker A节点的相关参数和属性。Linux001
    broker-a-s.propertiesBroker A从节点的安全配置文件,用于配置Broker A节点的安全相关参数和属性。Linux003
    broker-b.propertiesBroker B主节点的配置文件,用于配置Broker B节点的相关参数和属性。Linux002
    broker-b-s.propertiesBroker B从节点的安全配置文件,用于配置Broker B节点的安全相关参数和属性。Linux004

    Linux001:

    在这里插入图片描述

    vim 2m-2s-async/broker-a.properties 
    
    • 1

    在这里插入图片描述
    配置NameServer的地址为

    namesrvAddr=192.168.65.132:9876;192.168.65.133:9876
    
    • 1
    • brokerClusterName=DefaultCluster:指定Broker所属的集群名称,这里设置为"DefaultCluster"。
    • brokerName=broker-a:指定Broker的名称,这里设置为"broker-a"。
    • brokerId=0:指定Broker的唯一标识符,这里设置为0。
    • deleteWhen=04:指定消息文件的删除时间,这里设置为04,表示消息文件在存储超过4天后会被删除。
    • fileReservedTime=48:指定消息文件的保留时间,这里设置为48,表示消息文件在不活动超过48小时后会被删除。
    • brokerRole=ASYNC_MASTER:指定Broker的角色,这里设置为ASYNC_MASTER,表示该Broker是双主双从集群中的异步主节点。
    • flushDiskType=ASYNC_FLUSH:指定消息刷盘方式,这里设置为ASYNC_FLUSH,表示消息异步刷盘到磁盘。
    • namesrvAddr=192.168.65.132:9876;192.168.65.133:9876:指定NameServer的地址,这里设置了两个NameServer的地址,分别是192.168.65.132:9876和192.168.65.133:9876。

    Linux002:

    vim 2m-2s-async/broker-b.properties 
    
    • 1

    在这里插入图片描述

    Linux003:

    vim 2m-2s-async/broker-a-s.properties
    
    • 1

    在这里插入图片描述

    Linux004:

    vim 2m-2s-async/broker-b-s.properties
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    第四步,启动Broker

    Linux001:

    vim startupmqbroker.sh
    
    • 1

    在这里插入图片描述

    nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-a.properties &
    
    • 1

    在这里插入图片描述
    启动

    sh startupmqbroker.sh
    
    • 1

    查看是否启动成功

    ps -ef | grep rocket
    
    • 1

    在这里插入图片描述

    Linux002:

    vim startupmqbroker.sh
    
    • 1
    nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-b.properties &
    
    • 1
    sh startupmqbroker.sh
    
    • 1
    ps -ef | grep rocket
    
    • 1

    Linux003:

    vim startupmqbroker.sh
    
    • 1
    nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-a-s.properties &
    
    • 1
    sh startupmqbroker.sh
    
    • 1
    ps -ef | grep rocket
    
    • 1

    Linux004:

    vim startupmqbroker.sh
    
    • 1
    nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-b-s.properties &
    
    • 1
    sh startupmqbroker.sh
    
    • 1
    ps -ef | grep rocket
    
    • 1

    第五步,验证成果

    使用mqadmin命令查看集群环境:

    sh mqadmin clusterList -n 127.0.0.1:9876
    
    • 1

    在这里插入图片描述

    • Cluster Name:集群名称,这里是"DefaultCluster"。
    • Broker Name:Broker节点名称,这里有两个节点,分别是"broker-a"和"broker-b"。
    • BID:Broker节点的唯一标识符,0表示主节点,1表示从节点。
    • Addr:Broker节点的地址和端口号。
    • Version:RocketMQ的版本号,这里是"V491"。
    • InTPS(LOAD):消息的入站速率和负载情况。
    • OutTPS(LOAD):消息的出站速率和负载情况。
    • PCWait(ms):消息生产者和消费者的等待时间。
    • Hour:Broker节点的运行时间。
    • SPACE:消息存储空间的使用情况。

    可以成功看到集群已经搭建成功!!

    在本文中,我们详细介绍了如何在Linux上搭建RocketMQ双主双从集群。通过设置双主双从集群,我们可以实现高可用性、容错性、负载均衡和可扩展性。我们提供了逐步指南,包括下载和安装RocketMQ、配置集群、启动NameServer和Broker节点以及验证集群状态。我们还解释了双主双从集群与其他集群搭建方式的区别,以及不同模式的优势和适用场景。

    搭建RocketMQ双主双从集群是构建可靠消息传递系统的重要一步。通过合理配置和调优,我们可以满足不同业务需求的可用性、一致性和性能要求。在实际应用中,我们应根据具体情况选择适合的集群搭建方式,并进行相应的配置和管理。

    希望本文对大家在Linux上搭建RocketMQ双主双从集群有所帮助。如果大家有任何问题或疑问,请随时向我提问

  • 相关阅读:
    Vue之ElementUI实现CUD(增删改)及表单验证
    gns相关状态查看
    使用 Wireshark 调试 HTTPS请求
    一对一直播软件——如何实现音视频传播?
    【Netty专题】【网络编程】从OSI、TCP/IP网络模型开始到BIO、NIO(Netty前置知识)
    Docker部署Go+Mysql+Redis
    通过Frp解决实现内网穿透
    STM32单片机入门学习(四)-蜂鸣器
    VB.Net读写NFC Ntag标签源码
    按照功能对Boost库进行分类
  • 原文地址:https://blog.csdn.net/csdnerM/article/details/133984138