Windows下安装部署RocketMQ
- 引言
- 下载安装rocketmq
- 配置环境变量
- 启动NameServer
- 启动Broker
- rocketmq控制台[rocketmq-dashboard](https://github.com/apache/rocketmq-dashboard)安装及配置
- 修改rocketmq记录日志地址
- 设置namesrv、broker堆栈内存
- RocketMQ注册为Windows服务
- start.bat文件准备
- nssm软件下载安装
- 启动服务
引言
Apache RocketMQ是分布式和低延迟消息和流处理平台,性能和可靠性高,trillion-level(万亿级)能力和灵活的可扩展性。它由四个部分组成:
消息生产者(Producer)
:负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker
服务器。RocketMQ提供多种发送方式,同步发送
、异步发送
、顺序发送
、单向发送
。同步和异步方式均需要Broker返回确认信息,单向发送不需要。
消息消费者(Consumer)
:负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费
、推动式消费
。
代理服务器(Broker Server)
:消息中转角色,负责存储消息、转发消息。代理服务器在RocketMQ系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。
名字服务(Name Server)
:名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题
相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。
相关网址:
- 官网:https://rocketmq.apache.org/
- 下载地址:https://rocketmq.apache.org/download
- 文档地址:https://rocketmq.apache.org/zh/docs/
- github地址:https://github.com/apache/rocketmq
下载安装rocketmq
目前(2024.09)最新版本是5.3.0,点击下载RocketMQ
下载完后解压到自定义目录,MQ解压路径D:\developer\rocketmq-all-5.3.0-bin-release;(Windows10系统解压路径不要出现空格)
配置环境变量
配置环境变量,变量名:ROCKETMQ_HOME
变量值:D:\developer\rocketmq-all-5.3.0-bin-release;另外path后追加 %ROCKETMQ_HOME%\bin
启动NameServer
在安装目录bin
文件夹下cmd
,然后执行start mqnamesrv.cmd
,启动NAMESERVER。成功后会弹出提示框,此框勿关闭;
或直接双击mqnamesrv.cmd
运行
启动Broker
同理在安装目录bin
文件夹下cmd
,
输入:start mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
可能会执行报错:
错误: 找不到或无法加载主类 .;D:\developer\softwaredetail\Java\jdk1.8.0_171\lib;D:\developer\softwaredetail\Java\jdk1.8.0_171\lib\tools.jar
执行如下命令:
set CLASSPATH=%ROCKETMQ_HOME%\lib\*;%ROCKETMQ_HOME%\conf
上面是临时生效,在CLASSPATH中配置重启依然有效:
再次执行 start mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
可以正常启动:
启动后窗口都不要关闭。也可以看设置服务启动。
rocketmq控制台rocketmq-dashboard安装及配置
https://github.com/apache/rocketmq-dashboard
下载之后进行解压。
我的目录:D:\developer\rocketmq-dashboard-rocketmq-dashboard-1.0.0
下载下来的控制台服务端口,默认为8080
,可在yml文件中进行修改端口号,我改成了8888
进入目录 在当前打开打开cmd命令窗口:
执行打包:
mvn clean package -Dmaven.test.skip=true
目录下生成target文件夹,并在target目录下生成 rocketmq-dashboard-1.0.0.jar 包。
通过以下命令启动控制台服务:
java -jar target/rocketmq-dashboard-1.0.0.jar
通过链接: 访问控制台。
如果出现如下报错:
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed
解决办法:
- Linux环境:
进入rocketmq目录,修改配置:
conf/broker.conf
在最下添加配置信息
namesrvAddr={公网IP}:{端口号}brokerIP1={公网IP}
然后保存,再关闭掉 rocketmq的 broker 服务,然后再重启broker服务,在重启的时候指定这个配置文件即可
nohup bin/mqbroker -c conf/broker.conf &
可以在可视化工具就能查看修改是否成功。
- window环境
在控制台配置文件中指定namesrv地址即可。
修改rocketmq记录日志地址
namesrv和broker默认日志存储在C盘,空间占用量大,需修改下默认存储路径。
在RocketMQ安装目录下找到conf文件夹(D:\developer\rocketmq-all-5.3.0-bin-release\conf),
编辑rmq.broker.logback.xml
文件和rmq.namesrv.logback.xml
文件
两份文件都需增加property标签, 把user.home
全局替换为log.path
<property name="log.path" value="D:/logs/rocketmq" />
设置namesrv、broker堆栈内存
给namesrv和broker分配内存(根据服务器性能和数据量自定义分配内存,我本地测试同意调整成512m避免太大占用系统空间影响其他操作)
在RocketMQ安装目录下找到bin文件夹(D:\developer\rocketmq-all-5.3.0-bin-release\bin),编辑runserver.cmd
文件和runbroker.cmd
文件
如runbroker.cmd,由2g修改成512m,同时需关注是否配置了jdk环境变量 CLASSPATH
RocketMQ注册为Windows服务
start.bat文件准备
在rocketMQ安装目录下创建start.bat
文件。
文件内容如下(可自行加或对应改变):
start mqnamesrv.cmd
set CLASSPATH=%ROCKETMQ_HOME%\lib\*;%ROCKETMQ_HOME%\conf
start mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
java -jar .\console\rocketmq-dashboard-1.0.1-SNAPSHOT.jar
把之前打包好的控制台jar文件也移动到bin目录下:
nssm软件下载安装
下载地址:NSSM - the Non-Sucking Service Manager
解压安装包再根据自己电脑系统的位数进入目录,在目录处进入windows 命令窗口或直接cmd 到指定的解压目录下执行命令:nssm install RocketMQ
(可以先nssm 查询所有命令,install 后面是自己取的服务名称)
执行nssm install xxx 会弹出以下窗口:
点击install service
注册为服务;
启动服务
win+R
快捷键,键入 services.msc
找到自己取名的服务名称启动,也可设置启动类型,之后本地电脑就可以不用每次打那边的命令或单独再启动工具项目了,这样启动效率高很多。
本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位指出。
主页:共饮一杯无的博客汇总👨💻保持热爱,奔赴下一场山海。🏃🏃🏃