菜鸟科技网

如何正确启动MQ服务命令?

IBM MQ

IBM MQ 的启动分为两部分:启动队列管理器(Queue Manager)和启动监听器(Listener)。

如何正确启动MQ服务命令?-图1
(图片来源网络,侵删)

启动队列管理器

队列管理器是 IBM MQ 的核心。

Windows 系统 (使用 runmqsc 命令):

  1. 打开命令提示符(CMD)或 PowerShell。

  2. 运行以下命令,将 QM_NAME 替换为你的队列管理器名称(QM_QMGR)。

    如何正确启动MQ服务命令?-图2
    (图片来源网络,侵删)
    strmqm QM_NAME
    strmqm QM_QMGR
  3. 启动后,可以使用 dspmq 命令查看所有队列管理器的状态。

    dspmq

    输出示例:

    AMQ8410: Queue manager 'QM_QMGR' is running.

Linux/Unix 系统:

命令与 Windows 类似,通常在命令行中直接执行。

如何正确启动MQ服务命令?-图3
(图片来源网络,侵删)
strmqm QM_NAME

启动监听器

监听器负责接收来自客户端的连接请求,队列管理器启动后,监听器通常不会自动启动。

使用 runmqsc 命令行工具启动:

  1. 进入 runmqsc 交互模式。
    runmqsc QM_NAME
  2. runmqsc 提示符下,使用 START LISTENER 命令。
    START LISTENER('LISTENER_NAME')

    LISTENER_NAME 是你在定义监听器时指定的名字,默认通常是 LISTENERSYSTEM.DEF.LISTENER

  3. 退出 runmqsc
    exit

RabbitMQ

RabbitMQ 是一个基于 Erlang 语言的开源消息代理,它的启动通常通过其内置的 rabbitmq-server 脚本完成。

启动 RabbitMQ 服务器

Windows 系统 (使用服务):

推荐将 RabbitMQ 作为 Windows 服务安装和运行,这样它会在系统启动时自动启动,更稳定。

  1. 打开 PowerShell(以管理员身份运行)。
  2. 安装服务(如果尚未安装):
    & "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.x.x\sbin\rabbitmq-service.bat" install
  3. 启动服务:
    & "C:\Program Files\RabbitMQ Server\rabbitmq-server-3.x.x\sbin\rabbitmq-service.bat" start

Linux/Unix 系统:

RabbitMQ 通常作为系统服务(如 systemdsupervisord)来管理。

使用 systemd (CentOS 7+, Ubuntu 16+, Debian 9+ 等):

# 启动 RabbitMQ 服务
sudo systemctl start rabbitmq-server
# 停止服务
sudo systemctl stop rabbitmq-server
# 查看服务状态
sudo systemctl status rabbitmq-server
# 设置开机自启
sudo systemctl enable rabbitmq-server

直接使用脚本 (不推荐用于生产环境):

# 进入 RabbitMQ 的 sbin 目录
cd /usr/lib/rabbitmq/bin/
# 启动服务器
./rabbitmq-server start

Apache Kafka

Kafka 是一个分布式流处理平台,其架构包含多个组件(ZooKeeper, Broker),启动过程比前两者复杂一些。

前提条件

Kafka 依赖 ZooKeeper 来管理集群元数据,你需要先启动 ZooKeeper。

启动 ZooKeeper

在 Kafka 的 bin 目录下,执行:

# Windows
.\zookeeper-server-start.bat ..\config\zookeeper.properties
# Linux/Unix
./zookeeper-server-start.sh ../config/zookeeper.properties

启动 Kafka Broker

在另一个终端窗口,同样在 Kafka 的 bin 目录下,执行:

# Windows
.\kafka-server-start.bat ..\config\server.properties
# Linux/Unix
./kafka-server-start.sh ../config/server.properties

生产环境建议:

在生产环境中,Kafka 和 ZooKeeper 通常作为 systemd 服务运行,或者使用 kafka-server-start.shdaemon 选项在后台运行。

# 后台启动 Kafka Broker
./kafka-server-start.sh -daemon ../config/server.properties

RocketMQ

RocketMQ 是阿里巴巴开源的分布式消息中间件。

启动 NameServer

NameServer 是 RocketMQ 的核心,负责路由注册和发现。

# 进入 RocketMQ 的 bin 目录
cd /path/to/rocketmq-all-4.x.x-bin/bin
# 启动 NameServer
nohup sh mqnamesrv > /dev/null 2>&1 &

启动 Broker

Broker 负责存储和投递消息。

# 启动 Broker
nohup sh mqbroker -n localhost:9876 > /dev/null 2>&1 &

-n localhost:9876 指定了 NameServer 的地址。


总结与如何确认启动

MQ 产品 关键启动命令 主要组件
IBM MQ strmqm QM_NAME
runmqsc QM_NAME -> START LISTENER
队列管理器, 监听器
RabbitMQ systemctl start rabbitmq-server
rabbitmq-server start
服务器
Apache Kafka zookeeper-server-start.sh
kafka-server-start.sh
ZooKeeper, Broker
RocketMQ sh mqnamesrv
sh mqbroker
NameServer, Broker

如何确认 MQ 是否启动成功?

  1. 查看日志:每个 MQ 产品的启动日志都至关重要,检查日志文件,确认没有启动失败的错误信息。
  2. 使用自带的管理工具
    • IBM MQ: dspmq 查看队列管理器状态。
    • RabbitMQ: 访问管理界面 http://localhost:15672 (默认用户名/密码: guest/guest),或者使用 rabbitmqctl status 命令。
    • Kafka: 使用 kafka-topics.sh --list --bootstrap-server localhost:9092 来测试 Broker 是否响应。
    • RocketMQ: 使用 jps 命令查看 Java 进程,应该能看到 NamesrvStartupBrokerStartup 进程。

重要提示:在执行任何命令前,请确保:

  • 已正确安装对应的 MQ 产品。
  • 相关的环境变量(如 PATH, JAVA_HOME)已正确配置。
  • 知道配置文件的位置,并根据需要进行修改。
分享:
扫描分享到社交APP
上一篇
下一篇