RocketMQ服务搭建

RocketMQ的官网地址: rocketmq.apache.org 。在下载⻚⾯可以获取RocketMQ的源码包以及运⾏包。下载⻚⾯地址:rocketmq.apache.org/download。

关于RocketMQ的版本: 我们这⾥采⽤最新的5.3.0版本。

运⾏只需要下载Binary运⾏版本就可以了。 当然,源码包也建议下载下来,后续会进行解读。运⾏包下载下来后,就可以直接解压,上传到服务器上。我们这⾥会上传到/app/rocketmq⽬录。解压后⼏个重要的⽬录如下:

默认情况下,RocketMQ建议的运⾏环境需要⾄少12G的内存,这是⽣产环境⽐较理想的资源配置。但是,学 习阶段,如果你的服务器没有这么⼤的内存空间,那么就需要做⼀下调整。进⼊bin⽬录,对其中的runserver.sh和runbroker.sh两个脚本进⾏⼀下修改。 使⽤vi runserver.sh指令,编辑这个脚本,找到下⾯的⼀⾏配置,调整Java进程的内存⼤⼩。

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

接下来,同样调整runbroker.sh中的内存⼤⼩。

js 复制代码
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
修改为:
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g"

RocketMQ的后端服务分为nameserver和broker两个服务,关于他们的作⽤,后⾯会给你分享。接下来我们 先将这两个服务启动起来。

第⼀步:启动nameserver服务。

js 复制代码
cd /app/rocketmq/rocketmq-all-5.3.0-bin-release 
nohup bin/mqnamesrv &

指令执⾏后,会⽣成⼀个nohup.out的⽇志⽂件。在这个⽇志⽂件⾥如果看到下⾯这⼀条关键⽇志,就表示 nameserver服务启动成功了。

接下来,可以通过jsp指令进⾏验证。使⽤jps指令后,可以看到有⼀个NamesrvStartup的进程运⾏,也表示 nameserver服务启动完成。

第⼆步:启动broker服务

broker也是⼀个Java服务,只需要调整conf⽬录下的broker.conf⽂件,进⾏⼀些定制。然后就可以启动了。

在启动broker服务前,需要先指定NameServer的服务地址。RocketMQ可以使⽤⼀个NAMESRV_ADDR的环 境变量指定NameServer服务地址。 通过vi ~/.bash_profile添加以下配置。然后使⽤source ~/.bash_profile让配置⽣效。

export NAMESRV_ADDR='localhost:9876' 然后也可以⽤之前的⽅式启动broker服务。启动broker服务的指令是mqbroker。

cd /app/rocketmq/rocketmq-all-5.3.0-bin-release nohup bin/mqbroker &

启动完成后,同样检查nohup.out⽇志⽂件,有如下⼀条关键⽇志,就表示broker服务启动正常了。

The broker[xxxxx] boot success. serializeType=JSON and name server is localhost:9876

同样使⽤jps指令可以检查服务的启动状态。使⽤jps指令后,可以看到⼀个名为BrokerStartup的进程,则表示 broker服务启动完成。

2、快速实现消息收发 1》:通过指令启动RocketMQ的消息⽣产者发送消息。

js 复制代码
cd /app/rocketmq/rocketmq-all-5.3.0-bin-release
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

2》:可以启动消息消费者接收之前发送的消息

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

相关推荐
鹿衔`28 分钟前
Flask入门
后端·python·flask
q***07142 小时前
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)
java·spring boot·后端
q***49863 小时前
Spring Boot 3.4 正式发布,结构化日志!
java·spring boot·后端
dreams_dream7 小时前
Flask
后端·python·flask
盖世英雄酱581367 小时前
commit 成功为什么数据只更新了部分?
java·数据库·后端
追逐时光者8 小时前
小伙伴们学习 C#/.NET 相关技术栈的学习心得和路线
后端·.net
gelald8 小时前
Spring Security 核心组件
后端·spring
码事漫谈8 小时前
Blazor现状调研分析:2025年全栈开发的新选择
后端