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 brokerxxxxx 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

相关推荐
铁皮饭盒4 分钟前
用bunjs代码讲解XSS/CSRF/SQL注入/DDos等10种前后端安全防护
前端·后端
不考研当牛马9 分钟前
Django 框架 深度学习 第二课程
后端·python·django
我登哥MVP39 分钟前
SpringCloud 核心组件解析:服务注册与发现
java·spring boot·后端·spring·spring cloud·java-ee·maven
uhakadotcom42 分钟前
什么是Mass Assignment(批量赋值)风险
后端·面试·github
XovH43 分钟前
Redis 从入门到精通:Python 操作 Redis 进阶
后端
XovH1 小时前
Redis 从入门到精通:Python 操作 Redis
后端
HLAIA光子1 小时前
分布式锁与事务:你的微服务可能根本不需要它们
分布式·后端·微服务
砍材农夫1 小时前
物联网实战:Spring Boot + Netty 搭建 MQTT 统一接入层
java·网络·spring boot·后端·物联网·spring
苏三说技术1 小时前
MarkItDown 再次登顶GitHub榜
后端
IT_陈寒1 小时前
SpringBoot这个坑差点让我加班到天亮
前端·人工智能·后端