引言

RocketMQ

Apache RocketMQ是分布式和低延迟消息和流处理平台,性能和可靠性高,trillion-level(万亿级)能力和灵活的可扩展性。它由四个部分组成:

消息生产者(Producer):负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送异步发送顺序发送单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。

消息消费者(Consumer):负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费推动式消费

代理服务器(Broker Server):消息中转角色,负责存储消息、转发消息。代理服务器在RocketMQ系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。

名字服务(Name Server):名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。

相关网址:

下载安装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

找到自己取名的服务名称启动,也可设置启动类型,之后本地电脑就可以不用每次打那边的命令或单独再启动工具项目了,这样启动效率高很多。
在这里插入图片描述

本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位指出。
主页共饮一杯无的博客汇总👨‍💻

保持热爱,奔赴下一场山海。🏃🏃🏃

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐