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

相关推荐

  • Linux下如何扩展磁盘分区?

    在Linux系统中,当磁盘空间不足时,扩展分区是常见的操作,无论是添加新磁盘后合并空间,还是调整现有分区大小,都需要谨慎操作以避免数据丢失,本文将详细介绍Linux扩展分区的完整流程、所需工具及注意事项,帮助用户安全完成分区扩展,扩展分区前的准备工作在开始操作前,必须完成以下准备工作,确保数据安全和操作可行性……

    2025年9月25日
    20700
  • Linux系统下如何通过命令重启防火墙服务?

    Linux防火墙是系统安全的第一道防线,用于控制进出网络的数据流,保护系统免受未授权访问,在实际运维中,当防火墙规则配置修改、服务异常或策略需要即时生效时,重启防火墙是常见操作,但不同Linux发行版使用的防火墙工具不同,重启方法也存在差异,本文将详细介绍主流防火墙的重启步骤、注意事项及常见问题解决方案,主流L……

    2025年9月23日
    16400
  • Linux压缩文件夹最佳方法是什么?

    核心工具:tar 命令tar 是 Linux 归档文件的基石工具,常与压缩算法结合使用,基本语法:tar [选项] [压缩文件名] [要压缩的文件夹]压缩为 .tar.gz(gzip 格式)高兼容性,平衡速度与压缩率: tar -czvf 压缩包名.tar.gz 文件夹名/-c:创建归档-z:使用 gzip 压……

    2025年7月16日
    16900
  • 如何进入Linux字符界面?

    Linux字符界面,即命令行界面(CLI),是Linux系统管理的重要入口,相比图形界面(GUI)具有资源占用低、操作效率高、适合远程管理等优势,进入Linux字符界面的方法因系统启动状态、发行版配置不同而有所差异,以下是详细说明,涵盖不同场景下的操作步骤及注意事项,启动时直接进入字符界面对于服务器或需要默认使……

    2025年8月29日
    20000
  • Linux端口如何开启?

    开放端口前的准备确认需要开放的端口号HTTP服务:80/TCPHTTPS服务:443/TCPSSH服务:22/TCP自定义服务:如3000/TCP检查端口是否已被监听运行命令查看当前监听端口的服务:sudo ss -tuln | grep LISTEN# 或使用传统命令sudo netstat -tuln……

    2025年7月10日
    21900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信