TOC

RocketMQ 安装与使用

Arch

主要角色:

  1. NameServer:服务发现与配置管理
  2. 服务发现
  3. 路由
  4. 配置信息管理
  5. Broker:
  6. Broker Master
  7. Broker Slave
  8. Producer:生产者
  9. Consumer:消费者

安装

#!/bin/bash

# 下载RocketMQ二进制包(20MB)
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

# 解压RocketMQ安装包
unzip rocketmq-all-4.9.4-bin-release.zip
cd rocketmq-all-4.9.4-bin-release/
# ls
# benchmark/  bin/  conf/  lib/  LICENSE  NOTICE  README.md
#
# ls bin conf
# bin:
# cachedog.sh*       mqbroker*            mqnamesrv*      play.sh*       setcache.sh*
# cleancache.sh*     mqbroker.cmd         mqnamesrv.cmd   README.md      startfsrv.sh*
# cleancache.v1.sh*  mqbroker.numanode0*  mqshutdown*     runbroker.cmd  tools.cmd
# dledger/           mqbroker.numanode1*  mqshutdown.cmd  runbroker.sh*  tools.sh*
# mqadmin*           mqbroker.numanode2*  os.sh*          runserver.cmd
# mqadmin.cmd        mqbroker.numanode3*  play.cmd        runserver.sh*
#
# conf:
# 2m-2s-async/  2m-noslave/  dledger/            logback_namesrv.xml  plain_acl.yml
# 2m-2s-sync/   broker.conf  logback_broker.xml  logback_tools.xml    tools.yml

启动

# 启动 NameServer
nohup sh bin/mqnamesrv &
# 验证 NameServer 服务是否正常运行
# tail -f ~/logs/rocketmqlogs/namesrv.log
# # The Name Server boot success...

# 启动 Broker
nohup sh bin/mqbroker -n localhost:9876 &
# 验证 Broker 服务是否正常运行
# tail -f ~/logs/rocketmqlogs/broker.log
# # The broker[broker-a,192.169.1.2:10911] boot success...

echo "RocketMQ installed successfully."

停止/重启服务

sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

调整配置

  1. 限制内存使用

Systemd

vim /etc/systemd/system/rocketmq-namesrv.service
vim /etc/systemd/system/rocketmq-broker.service
# 配置启动命令、环境变量、工作目录、限制资源使用、设置启动顺序、依赖关系等选项
systemctl daemon-reload

然后就可以执行 start, stop, restart, status, reload, enable, disable 等操作了。

控制台(Web UI)

可以通过官方的 rocketmq-dashboard(SpringBoot + React)管理。

最简单的方式就是运行在 Docker 中:

docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest

集群

https://cloud.tencent.com/developer/article/1857491