LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

RocketMQ介绍及部署

admin
2025年7月22日 10:57 本文热度 85

RocketMQ介绍

RocketMQ是一款由阿里巴巴开源的分布式消息中间件。它具有低延迟、高吞吐量、高可用性和高可靠性等特点,适用于构建具有海量消息堆积和异步解耦功能的应用系统。

1.1.基本概念

  • • 生产者(Producer):也称为消息发布者,是RocketMQ中用来构建并传输消息到服务端的运行实体。
  • • 主题(Topic):Topic是RocketMQ中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息;Topic是一个逻辑概念,并不是实际的消息容器;
  • • 消息队列(MessageQueue):队列是RocketMQ中消息存储和传输的实际容器,也是消息的最小存储单元。
  • • 消费者(Consumer):也称为消息订阅者,是RocketMQ中用来接收并处理消息的运行实体。
  • • 消费者组(ConsumerGroup):消费者组是RocketMQ中承载多个消费行为一致的消费者负载均衡分组。和消费者不同,消费者组是一个逻辑概念。
  • • NameServer:可以理解成注册中心,负责更新和发现Broker服务。在NameServer的集群中,NameServer与NameServer之间是没有任何通信的,它是无状态的。
  • • Broker:可以理解为消息中转角色,负责消息的存储和转发,接收生产者产生的消息并持久化消息;当用户发送的消息被发送到Broker时,Broker会将消息转发到与之关联的Topic中,以便让更多的接收者进行处理。

1.2消息模型

1.3.部署模型

2.下载RocketMQ

RocketMQ的官网地址:https://rocketmq.apache.org/
Github地址:https://github.com/apache/rocketmq
下载地址:https://rocketmq.apache.org/zh/download/ 当前最新的版本为5.1.0,本教程安装5.1.0版本。

3.安装RocketMQ

3.1.安装前需要准备一个CentOS7的Linux机器,使用的Linux版本如下:

uname -a

3.2.安装JDK

推荐使用JDK1.8版本。可以使用课件资料包或者自行下载tar.gz包。

1.统一规划目录,创建app文件夹,在创建jdk文件夹,将jdk的包上载到 /app/jdk目录下然后解压

cd ..
mkdir app
cd app/
mkdir jdk
cd jdk/
tar -zxvf jdk-8u171-linux-x64.tar.gz

2.配置jdk环境变量,将JAVA_HOME变量加上;将path路径替换成相应配置

vi /etc/profile

#
jdk解压后的目录路径
export JAVA_HOME=/app/jdk/jdk1.8.0_171/
PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin

3.更新配置并查看jdk版本,显示以下信息则安装成功。

source /etc/profile
java -version

3.3.安装RocketMQ

3.3.1.将安装包上传到/app/rocketMQ目录下

先在app目录下创建rocketMQ文件夹
cd ..
mkdir rocketMQ

上传到/app/rocketMQ目录然后解压(也可以先解压在上传,推荐上传后解压)
cd rocketMQ/
unzip rocketmq-all-5.1.0-bin-rease.zip

3.3.2 配置rocketMQ环境变量

#将ROCKETMQ_HOME变量加上,在path路径加上$ROCKETMQ_HOME/bin:

vi /etc/profile
#rocketMQ路径
export ROCKETMQ_HOME=/app/rocketMQ/rocketmq-all-5.1.0-bin-rease
export PATH=$ROCKETMQ_HOME/bin:JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
#namesrc后续broker会使用到,先加上
export NAMESRC_ADDR='woker1:9876;worker2:9876;worker3:9876'

3.3.3 更新配置

source /etc/profile

ROCKETMQ_HOME的环境变量是必须要单独配置的,如果不配置的话,启动NameSever和Broker都会报错。这个环境变量的作用是用来加载$ROCKETMQ_HOME/conf下的除broker.conf以外的几个配置文件。所以实际情况中,可以不按这个配置,但是一定要能找到配置文件。这样RocketMQ就安装完成了。

3.4.RocketMQ工作原理

官网5.0版本速览链接:https://rocketmq.apache.org/zh/version/

RocketMQ5.0 引入了全新的弹性无状态代理模式,将当前的Broker职责进行拆分,对于客户端协议适配、权限管理、消费管理等计算逻辑进行抽离,独立无状态的代理角色提供服务,Broker则继续专注于存储能力的持续优化。值得注意的是RocketMQ 5.0的全新模式是和4.0的极简架构模式相容相通的,5.0的代理架构完全可以以Local模式运行,实现与4.0架构完全一致的效果。开发者可以根据自身的业务场景自由选择架构部署,本教程也是部署的Local模式。

RocketMQ启动流程如下:

  • • 启动NameServer
  • • 启动Broker

3.5 NameServer服务搭建

启动NameServer非常简单,在$ROCKETMQ_HOME/bin目录下有个mqnamesrv。直接执行这个脚本就可以启动RocketMQ的NameServer服务。
由于RocketMQ默认预设的JVM内存是4G,这是RocketMQ给我们的最佳配置。但是通常我们用虚拟机的话都是不够4G内存的,所以需要调整下JVM内存大小。修改的方式是直接修改runserver.sh。

3.5.1 修改NameServer启动配置

cd rocketmq-all-5.1.0-bin-release/bin/
vi runserver.sh
将JAVA_OPT="${JAVA_OPT} -Server-Xms4g -Xmx4g -Xmn2g 修改为 -server Xms512m -Xmx512m -Xmn256m"

3.5.2 启动NameServer

NameServer的配置修改完成,然后我们用静默启动的方式启动NameServer服务,启动完成后在nohup.out里看到这一条关键日志就是启动成功。并且使用jps指令可以看到有一个NamesrvStartup进程。

#静默启动
nohup ./mqnamesrc &

#
查看日志
tail -f nohup.out

3.6 Broker服务搭建

启动Broker的脚本是runbroker.sh。Broker的默认预设内存是8G,启动前,如果内存不够,同样需要调整下JVM内存。修改的方式是直接修改runbroker.sh。

3.6.1 修改broker启动脚本配置

vi runbroker.sh
#将JAVA_OPT="${JAVA_OPT} -server Xms8g -Xmx8g" 修改为JAVA_OPT="${JAVA_OPT} -server Xms512m -Xmx512m"

3.6.2 修改broker配置文件

#修改Broker资源配置文件,允许自动创建Topic
cd ../conf/
vi broker.conf

#
允许自动创建topic
autoCreateTopicEnable=true
#添加nameserver地址
namesrvAddr=localhost:9876

3.6.3 启动broker服务

Broker的配置修改完成,然后我们用静默启动的方式启动Broker服务,同样是检查nohup.out日志, 并且jps指令可以看到一个BrokerStartup进程。

1.回到bin目录下,静默启动Broker
cd ../bin
nohup ./mqbroker -c ../conf/broker.conf &
2.查看日志,显示如下即显示成功********每次启动broker时都要关注是否注册到目标nameserver上(name server isworker:9876)
tail -f nohup.out
jps

3.7 测试RocketMQ消息发送与消费

在RocketMQ的安装包中,提供了一个tools.sh工具可以用来在命令行快速验证RocketMQ服务。

1.我们在bin录下执行以下命令测试消息发送,默认会发1000条消息,发送完成自动关闭

export NAMESRV_ADDR=‘localhost:9876’
./tools.sh org.apache.rocketmq.example.quickstart.Producer

2.出现以下提示则代表消息发送成功

3 执行一下命令测试消息接收,Consumer执行不会自动关闭,会一直挂起等待新消息过来

export NAMESRV_ADDR=‘localhost:9876’
./tools.sh org.apache.rocketmq.example.quickstart.Consumer

4 出现以下提示则代表消息接收成功

3.8 关闭RocketMQ服务

在bin目录下通过脚本关闭服务

1 关闭Broker

sh ./mqshutdown broker

2 关闭NameServer

sh ./mqshutdown namesrv

3 查看服务

至此RockMQ单机测试成功,接下来搭建集群。


阅读原文:https://mp.weixin.qq.com/s/NyBCC2E3EfCEuHRuGFtTiw


该文章在 2025/7/22 10:57:19 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved