前言
本想使用rocketmq的延迟消息特性,但延迟的范围有限,仅支持 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 这18个等级,之外的延迟时间不支持,本文是为了说明如何利用rocketmq的延迟消息实现任意时间的消息延迟,如何进行扩展的
技术架构
rocketmq部署
下载安装包
https://mirror.bit.edu.cn/apache/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip 解压到目录 /Users/mengfanxiao/Documents/third_software/mq/rocketmq/rocketmq-all-4.7.0-bin-release
配置Java_home环境变量
sudo vim /etc/profile jdk1.8安装报路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home 添加 JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home" export JAVA_HOME CLASS_PATH="$JAVA_HOME/lib"
安装nameserver
启动 mqnamesrv
sh bin/mqnamesrv
安装console
下载 rocketmq 插件
- 代码下载
https://gitee.com/pingfanrenbiji/rocketmq-externals.git
- 修改配置
vim rocketmq-externals/rocketmq-console/src/main/resources/application.properties
- 代码编译
进入‘\rocketmq-externals\rocketmq-console’文件夹,执行‘mvn clean package -Dmaven.test.skip=true’,编译生成
- 启动
编译成功之后,Cmd进入‘target’文件夹,执行‘java -jar rocketmq-console-ng-1.0.1.jar’,启动‘rocketmq-console-ng-1.0.0.jar’。
- 访问控制台页面