Windows 安装RocketMQ

文章目录

一、RocketMQ是什么?

二、准备工作

1.环境要求

2.下载与解压

3.启动MQ

4. 测试是否成功启动

三、安装管理端

1. 代码下载

2. 修改配置文件

3. 启动MQ客户端jar包

四、rocketMQ代码的使用入门

五、问题记录

1. 启动mqbroker.cmd没有反应

2.消费者重复消费消息

一、RocketMQ是什么?

RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ,后捐赠给Apache基金

会作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会的顶级项目。并且它现在已经在阿里内部被

广泛的应用,并且经受住了多次双十一的这种极致场景的压力。(2017年的双十一,RocketMQ流转的消息量达

到了万亿级,峰值TPS达到5600万)。并且其内部通过Java语言开发,便于阅读与修改。

二、准备工作

1.环境要求

64位JDK 1.8+;

Maven 3.2.x;

64位操作系统系统,本文档在Windows上安装

2.下载与解压

下载地址:https://archive.apache.org/dist/rocketmq/4.5.1/

解压到一个无中文无空格的目录下,解压后目录如下:

3.启动MQ

3.1 更改配置

java的默认启动参数中,启动时堆内存的大小为2g,太大了,调整一下

切换路径到D:\rocketmq-all-4.5.1-bin-release\bin

打开runserver.cmd

把-Xms、-Xmx、-Xmn都设置成512m,将%CLASSPATH%增加"",不然启动时会找不到jdk

同理设置 runbroker.cmd

3.2 启动NameServer

双击mqnamesrv.cmd启动,或者使用启动命令:start mqnamesrv.cmd

如下显示则启动成功

3.3 启动broker

进入cmd命令窗口,切换到D:\rocketmq-all-4.5.1-bin-release\bin

执行 mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true

4. 测试是否成功启动

4.1 监听消息

进入cmd命令窗口,切换到D:\rocketmq-all-4.5.1-bin-release\bin

执行:

set NAMESRV_ADDR=127.0.0.1:9876

tools.cmd org.apache.rocketmq.example.quickstart.Producer

4.2 发送消息

进入cmd命令窗口,切换到D:\rocketmq-all-4.5.1-bin-release\bin

执行:

set NAMESRV_ADDR=127.0.0.1:9876

tools.cmd org.apache.rocketmq.example.quickstart.Producer

三、安装管理端

1. 代码下载

我们进入到这个dashboard仓库:

https://gitcode.net/mirrors/apache/rocketmq-dashboard

2. 修改配置文件

进入到解压的文件夹D:\rocketmq-dashboard-master\src\main\resources下修改 application.yml 文件

修改客户端的端口号以及MQ的地址和端口号

进入cmd命令窗口,切换到D:\rocketmq-dashboard-master,进行打包成jar包

执行:mvn clean package -Dmaven.test.skip=true

如下显示则启动成功

在D:\rocketmq-dashboard-master\target路径下会生成对应jar包

3. 启动MQ客户端jar包

进入cmd命令窗口,切换到D:\rocketmq-dashboard-master\target,进行打包成jar包

执行:java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar

如下显示则启动成功

在自己的浏览器中输入:http://localhost:8888/#/ 即可进入

四、rocketMQ代码的使用入门

五、问题记录

1. 启动mqbroker.cmd没有反应

进入到C:\Users\DELL\store目录下删除底下的所有文件

然后再进行重新启动

2.消费者重复消费消息

最终排查发现,是因为消费者在处理消息的方法onMessage中有异常没有捕获到,导致异常上抛,被consumeMessage捕获并判定为消费失败,从而放到了重试队列当中进行重试。

总结:RocketMq中会引起消息重试的两种情况,内部异常和消费超时。

在Consumer中处理消息时,会在消费完消息后判断消费的总时长,如果 比超时时间要长则返回TIME_OUT,注意这里的超时是在consumeMessage内部逻辑处理完毕之后在进行判断的,如果内部逻辑处理成功,但耗时较长,那么也会被判断为超时。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值