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

相关推荐

  • 如何用PE给电脑安装Linux系统并备份?

    使用PE(Preinstallation Environment)给电脑安装Linux系统并进行备份,是一种灵活且高效的方式,尤其适合需要在原系统基础上保留数据或进行多系统管理的用户,以下是详细操作步骤,涵盖准备工作、系统安装、备份方法及注意事项,准备工作在开始操作前,需确保工具齐全且数据安全,具体清单如下(可……

    2025年9月19日
    2100
  • 如何检查Linux网卡状态?

    在虚拟机中运行Linux系统时,网络连接是基础需求,以下是详细配置指南,涵盖主流虚拟机软件(VirtualBox/VMware)和Linux系统(以Ubuntu为例),遵循E-A-T原则(专业性、权威性、可信度),确保内容准确可靠:虚拟机网络模式解析(关键基础)NAT模式(推荐新手)原理:虚拟机共享主机IP,通……

    2025年7月15日
    5000
  • Linux下如何查看FTP服务的运行状态?

    在Linux系统中,FTP(File Transfer Protocol)是一种常用的文件传输协议,广泛应用于文件共享、数据备份等场景,正确查看和管理FTP服务是系统管理员的基本技能,本文将详细介绍在Linux系统中查看FTP服务的多种方法,包括服务运行状态、端口监听情况、配置文件内容、日志信息及用户权限等,并……

    2025年9月24日
    2100
  • Linux程序正确链接静态库的方法、步骤及注意事项有哪些?

    在Linux开发中,静态库是一组预先编译好的目标文件(.o文件)的集合,以.a(archive)格式存储,链接静态库时,链接器会将库中的代码完整复制到可执行文件中,因此生成的程序不依赖外部库文件,但体积会相对较大,本文将详细介绍在Linux环境下如何创建、链接静态库,以及相关注意事项,静态库的创建静态库的创建通……

    2025年9月24日
    1800
  • Linux系统下如何运行Windows的exe可执行文件?

    Linux系统作为开源操作系统,其默认可执行文件格式为ELF(Executable and Linkable Format),而Windows系统使用PE(Portable Executable)格式的.exe文件,由于内核架构、系统调用接口和动态链接库(如Windows的.dll)的差异,Linux无法直接运……

    2025年10月1日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信