程序员社区

?【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起实践一下RocketMQ服务及其控制台安装指南

前提条件

下载地址:前往 http://rocketmq.apache.org/release_notes/release-notes-4.5.1/ ,下载 Binary 文件即可,例如: RocketMQ 4.5.1的下载地址

系统要求

  • 64位操作系统,生产环境建议Linux/Unix/MacOS(Windows操作系统安装说明详见 Windows操作系统安装教程)
  • 64位JDK 1.8+
  • 4G+的可用磁盘

Linux/Unix/MacOS安装教程

解压压缩包

unzip rocketmq-all-4.5.1-bin-release.zip

切换目录到RocketMQ根目录

cd rocketmq-all-4.5.1-bin-release

启动Name Server

nohup sh bin/mqnamesrv &

验证是否启动OK:

tail -f ~/logs/rocketmqlogs/namesrv.log

如果成功启动,能看到类似如下的日志:

2019-07-18 17:03:56 INFO main - The Name Server boot success. ...

启动 Broker

nohup sh bin/mqbroker -n localhost:9876 &

验证是否启动OK:

tail -f ~/logs/rocketmqlogs/broker.log

如果启动成功,能看到类似如下的日志:

2019-07-18 17:08:41 INFO main - The broker[itmuchcomdeMacBook-Pro.local, 192.168.43.197:10911] b

验证RocketMQ功能正常(可选)

验证生产消息正常

执行如下命令:
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
能看到类似如下输出:

SendResult [sendStatus=SEND_OK, msgId=C0A82BC5F36C511D50C05B41...

验证消费消息正常

执行如下命令:

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

能看到类似如下输出:

ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=3, stor....

停止

依次执行以下两条命令即可

命令

sh bin/mqshutdown broker

输出如下信息说明停止成功

The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

命令

sh bin/mqshutdown namesrv

输出如下信息说明停止成功

The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

RocketMQ控制台安装

下载代码

方式一、git下载,执行如下命令

git clone https://github.com/apache/rocketmq-externals.git

方式二、直接下载,访问如下地址即可

https://github.com/apache/rocketmq-externals/archive/master.zip

修改控制台代码

修改配置

找到rocketmq-console/src/main/resources/application.properties 根据需求,修改配置

  • server.contextPath

    • 管理后台访问上下文路径,默认为空
    • 如果填写,需写成/xxx的形式,例如/console
  • 控制台的端口

    • server.port=8080
  • Name Server地址(if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876)

    • rocketmq.config.namesrvAddr=
  • rocketmq.config.isVIPChannel=( if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true)

  • rocketmq-console's data path:dashboard/monitor

  • rocketmq.config.dataPath=/tmp/rocketmq-console/data

  • rocketmq.config.enableDashBoardCollect=true

  • rocketmq.config.msgTrackTopicName=(set the message track trace topic if you don't want use the default one)

  • rocketmq.config.ticketKey=ticket

rocketmq.config.loginRequired=false(#Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required)

例如

console端口

server.port=17890

name server地址

也可以不修改,在启动完console后,在控制台导航栏 - 运维 - NameSvrAddrList一栏设置

rocketmq.config.namesrvAddr=localhost:9876

修改依赖

修改 pom.xml ,修改RocketMQ相关依赖的版本

<rocketmq.version>4.4.0</rocketmq.version>
修改为
<rocketmq.version>你的RocketMQ版本</rocketmq.version>

例如:

<rocketmq.version>4.5.1</rocketmq.version>
修改代码

修改pom.xml后,org.apache.rocketmq.console.service.impl.MessageServiceImpl#queryMessageByTopic 编译会报错,所以需要解决一下。

DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(MixAll.TOOLS_CONSUMER_GROUP, null);
改为:RPCHook rpcHook = null;
DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(MixAll.TOOLS_CONSUMER_GROUP, rpcHook);

打包构建

切换到代码根目录

cd rocketmq-externals

切换到控制台目录

cd rocketmq-console

构建

mvn clean package -DskipTests

下载地址:https://github.com/eacdy/rocketmq-externals/releases

启动

java -jar rocketmq-console-ng-1.0.1.jar

访问

访问 http://localhost:17890 (端口用上面 application.properties 中的 server.port=17890 指定,默认是8080) ,即可看到界面

赞(0) 打赏
未经允许不得转载:IDEA激活码 » ?【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起实践一下RocketMQ服务及其控制台安装指南

一个分享Java & Python知识的社区