Linux下MQ 7.0如何安装?

在Linux环境下安装MQ(以RocketMQ 7.0为例)需要经过环境准备、软件下载、配置部署、服务启动及验证测试等步骤,以下是详细操作流程:

linux下如何安装mq7.0

环境准备

安装RocketMQ 7.0前,需确保系统满足基础要求,具体如下表所示:

组件 要求
操作系统 CentOS 7.4+、Ubuntu 20.04 LTS等主流Linux发行版
JDK版本 8+(推荐OpenJDK 11,可通过java -version检查)
磁盘空间 至少10GB(存储日志与消息数据)
端口 Name Server默认9876、Broker默认10911(监听端口)、10912(快照端口)

依赖安装(以CentOS为例):

# 安装OpenJDK 11
yum install -y java-11-openjdk-devel
# 验证Java版本
java -version

安装步骤

创建安装目录与专用用户

为提升安全性,建议创建非root用户运行RocketMQ:

# 创建mq用户
useradd -m -s /bin/bash mq
# 创建安装目录
mkdir -p /opt/rocketmq
chown -R mq:mq /opt/rocketmq

下载RocketMQ 7.0安装包

从官方GitHub仓库下载二进制压缩包(以Linux 64位为例):

# 切换至mq用户
su - mq
# 下载安装包(也可手动下载后上传至服务器)
wget https://github.com/apache/rocketmq/releases/download/rocketmq-all-7.0.0/rocketmq-all-7.0.0-bin-release.zip
# 解压至安装目录
unzip rocketmq-all-7.0.0-bin-release.zip -d /opt/rocketmq/
mv /opt/rocketmq/rocketmq-all-7.0.0-bin-release /opt/rocketmq/rocketmq-7.0.0

配置环境变量

编辑/etc/profile文件,添加RocketMQ全局环境变量:

vi /etc/profile

在文件末尾添加以下内容:

export ROCKETMQ_HOME=/opt/rocketmq/rocketmq-7.0.0
export PATH=$PATH:$ROCKETMQ_HOME/bin

使配置生效:

source /etc/profile

修改核心配置文件

RocketMQ的核心配置为broker.conf,需根据实际需求调整参数:

# 复制配置模板
cp $ROCKETMQ_HOME/conf/broker.conf.example $ROCKETMQ_HOME/conf/broker.conf
# 编辑配置文件
vi $ROCKETMQ_HOME/conf/broker.conf

关键参数说明及修改建议:

linux下如何安装mq7.0

# 集群名称
brokerClusterName=DefaultCluster
# Broker名称,同一集群内需唯一
brokerName=broker-a
# Broker ID,0表示Master,>0表示Slave
brokerId=0
# Name Server地址,多个地址以分号分隔
namesrvAddr=localhost:9876
# 存储路径,建议使用独立磁盘
storePathRootDir=/opt/rocketmq/store
# commitLog文件大小限制(默认1GB)
mapedFileSizeCommitLog=1073741824
# 消息刷盘策略:ASYNC_FLUSH(异步刷盘)、SYNC_FLUSH(同步刷盘)
flushDiskType=ASYNC_FLUSH
# 是否允许自动创建Topic,生产环境建议关闭
autoCreateTopicEnable=false
# 是否允许自动创建订阅组,生产环境建议关闭
autoCreateSubscriptionGroup=false
# Broker对外监听地址,0.0.0.0表示所有网卡
listenAddr=0.0.0.0

启动服务

RocketMQ需先启动Name Server,再启动Broker,具体步骤如下:

(1)启动Name Server

nohup sh $ROCKETMQ_HOME/bin/mqnamesrv > /opt/rocketmq/logs/namesrv.log 2>&1 &

验证:检查日志tail -f /opt/rocketmq/logs/namesrv.log,若出现The Name Server boot success...则启动成功。

(2)启动Broker

nohup sh $ROCKETMQ_HOME/bin/mqbroker -c $ROCKETMQ_HOME/conf/broker.conf > /opt/rocketmq/logs/broker.log 2>&1 &

验证:检查日志tail -f /opt/rocketmq/logs/broker.log,若出现The broker[broker-a, 10.0.0.1:10911] boot success...则启动成功。

验证安装

使用RocketMQ提供的命令行工具测试消息发送与消费:

(1)发送消息

sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

若输出类似SendResult [sendStatus=SEND_OK, msgId=...],则发送成功。

(2)消费消息

linux下如何安装mq7.0

sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

若输出类似Consume message[msgId=...] body: Hello RocketMQ!,则消费成功。

常用管理命令

  • 查看进程ps -ef | grep rocketmq
  • 停止Name Serversh $ROCKETMQ_HOME/bin/mqshutdown namesrv
  • 停止Brokersh $ROCKETMQ_HOME/bin/mqshutdown broker
  • 查看端口占用netstat -tunlp | grep 9876(Name Server)

相关问答FAQs

问题1:启动Broker时报错“java.net.BindException: Address already in use”,如何解决?
解答:该错误通常因端口被占用导致,可通过以下步骤排查:

  1. 检查端口占用情况:netstat -tunlp | grep 10911(Broker监听端口);
  2. 若端口被占用,可通过kill -9 <PID>杀死占用进程;
  3. 若需修改端口,编辑broker.conf,调整listenPort参数(如listenPort=10913),重启Broker即可。

问题2:如何设置RocketMQ开机自启?
解答:可通过创建systemd服务实现开机自启,以Name Server为例:

  1. 创建服务文件:vi /etc/systemd/system/rocketmq-namesrv.service,写入以下内容:

    [Unit]
    Description=RocketMQ Name Server
    After=network.target
    [Service]
    User=mq
    Group=mq
    ExecStart=$ROCKETMQ_HOME/bin/mqnamesrv
    ExecStop=$ROCKETMQ_HOME/bin/mqshutdown namesrv
    LimitNOFILE 65536
    [Install]
    WantedBy=multi-user.target
  2. 重新加载systemd配置:systemctl daemon-reload

  3. 启用开机自启:systemctl enable rocketmq-namesrv

  4. 启动服务:systemctl start rocketmq-namesrv
    Broker服务同理,创建rocketmq-broker.service文件并配置ExecStart为Broker启动命令即可。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23144.html

(0)
酷番叔酷番叔
上一篇 2025年9月11日 12:14
下一篇 2025年9月11日 12:28

相关推荐

  • 如何快速安装AUR助手yay?

    在Arch Linux上安装Adobe Flash Player需要特别注意:Adobe已于2020年12月31日正式终止对Flash Player的支持,不再提供安全更新,继续使用存在严重安全风险,建议优先使用HTML5等现代替代技术,若因特殊需求必须安装,以下是详细方法:安装前重要警告安全风险:Flash……

    2025年7月5日
    16500
  • 在Linux内核中,如何查看物理地址的具体方法?

    在Linux系统中,物理地址是硬件内存的实际位置,而虚拟地址是内核或进程通过内存管理单元(MMU)映射后的逻辑地址,查看物理地址在驱动开发、内存调试、硬件交互等场景中至关重要,本文将详细介绍Linux内核中查看物理地址的方法及相关工具,虚拟地址与物理地址的转换基础Linux内核通过页表管理虚拟地址与物理地址的映……

    2025年8月25日
    31400
  • 如何高效利用Linux开发环境快速上手编程?

    环境准备安装开发工具链打开终端,安装基础编译器和构建工具:sudo apt update && sudo apt install build-essential # Debian/Ubuntusudo dnf groupinstall "Development Tools&quot……

    2025年8月1日
    15800
  • Linux网络连接的具体步骤是什么?

    Linux网络连接是操作系统与外部网络通信的基础,涉及网络接口配置、协议栈管理、服务设置等多个层面,无论是日常使用还是服务器运维,掌握Linux网络连接的方法都至关重要,本文将从网络接口类型、常用配置工具、不同场景下的连接方式及故障排查等方面,详细解析Linux网络连接的实现逻辑和操作步骤,Linux网络连接基……

    2025年9月19日
    15900
  • linux下如何重启网络连接网络

    Linux 下,可通过命令 sudo systemctl restart NetworkManager

    2025年8月15日
    15200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信