RocketMQ MQTT 快速搭建验证

来自业务的需求,需要快速搭建一套支持 MQTT 协议的消息系统。

前期准备:

官方地址:https://github.com/apache/rocketmq-mqtt
RocketMQ从4.9.3 版本开始才支持该功能,所以需要先检查 RocketMQ 的版本是否满足。
RocketMQ 部署参考:https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy
JDK 版本: 1.8.x
在 RockerMQ Broker 的配置中增加如下配置,开启多队列分发特性:

enableLmq = true 
enableMultiDispatch = true

RocketMQ 的部署忽略(网上文章很多),下面开始 RocketMQ MQTT 的部署、验证

构建 RocketMQ MQTT

下载工程:
最新代码:

git clone https://github.com/apache/rocketmq-mqtt

发布版本:
https://github.com/apache/rocketmq-mqtt/releases

构建工程:
进入到代码根目录,执行 mvn 命令

cd rocketmq-mqtt
mvn -Prelease-all -DskipTests clean install -U 

配置 RocketMQ MQTT:

cd distribution/target/xxx

target 目录一直往下,看到
在这里插入图片描述
进入 conf:

cd conf

配置 meta.conf
在这里插入图片描述
selfAddress 部署 meta 的地址
memberAddress 可以是一组部署了 meta 的地址
我这里都是单节点

配置 service.conf
在这里插入图片描述
username 和 secretKey 在发布、订阅时认证需要
NAMESRV_ADDR ns 地址
eventNotifyRetryTopic 事件通知消息重试 Topic,提前创建
clientRetryTopic 客户端消息重试 Topic,提前创建
metaAddr 就用 meta.conf 中的地址

创建 Topic:

mqadmin updateTopic -n 10.22.34.179:9876 -c DefaultCluster -t eventNotifyRetryTopic
mqadmin updateTopic -n 10.22.34.179:9876 -c DefaultCluster -t clientRetryTopic
mqadmin updateTopic -n 10.22.34.179:9876 -c DefaultCluster -t testTopic

初始化元数据:
配置网关:

mqadmin updateKvConfig -s LMQ -k LMQ_CONNECT_NODES -v 10.22.34.179 -n 10.22.34.179:9876

配置一级 Topic:

mqadmin updateKvConfig -s LMQ -k ALL_FIRST_TOPICS -v eventNotifyRetryTopic,clientRetryTopic,testTopic -n 10.22.34.179:9876

配置每个一级 Topic 的通配符:

mqadmin updateKvConfig -s LMQ -k eventNotifyRetryTopic -v testTopic/+ -n 10.22.34.179:9876
mqadmin updateKvConfig -s LMQ -k clientRetryTopic -v testTopic/+ -n 10.22.34.179:9876
mqadmin updateKvConfig -s LMQ -k testTopic -v testTopic/+ -n 10.22.34.179:9876

踩坑一: 后面新增的 Topic 没走配置一级 Topic 这步,mqtt 消费订阅发布不正常。
注意: 后期新增 Topic,首先需要创建、然后配置一级 Topic、然后配置一级 Topic 的通配符,否则会出现发布订阅预期外的情况。
以上步骤走完后,就可以启动工程了。

启动 RocketMQ MQTT:

cd bin
sh meta.sh start
sh mqtt.sh start

命令执行后确认是否执行成功:
jps -l 可以看到下面两个进程:
org.apache.rocketmq.mqtt.cs.starter.Startup
org.apache.rocketmq.mqtt.meta.starter.MetaStartup
查看端口是否被监听:
meta: 25000
mqtt: 1883

如果端口没被监听或者发布订阅有报错,到 $HOME/logs/xx.log 查看具体日志。
在这里插入图片描述
踩坑二: 进程存在,1883 一直没被监听,看启动日志是连 ns 出现了超时。
踩坑三: 部署到服务器上,发布时用户名和密码填正确的也报错。
在这里插入图片描述

原因:执行命令后,需要使用到 $JAVA_HOME/jre/lib/ext/ 文件夹下的相关 jar 包,但是由于系统的原因,无法使用该包下的 jar 包
解决:手动将 $JAVA_HOME/jre/lib/ext/sunjce_provider.jar 包复制到 target/xx/lib 目录下即可

调试 RocketMQ MQTT:

示例代码:https://github.com/apache/rocketmq-mqtt/tree/main/mqtt-example/src/main/java/org/apache/rocketmq/mqtt/example
发布消息:
在这里插入图片描述
订阅消息:

客户端调试工具:MQTTX
MQTTX 发布订阅消息:
在这里插入图片描述

RocketMQ MQTT 的资料在网上比较少,我也会及时更新在使用过程中遇到的坑及解决办法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/585431.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java同时使用@RequestBody和@RequestParam传参在postman中执行请求报错:Unsupported Media Type

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

Laravel5.4 反序列化

文章目录 0x01 环境搭建0x02 POP 链0x03 exp0x04 总结 前言:CC 链复现的头晕,还是从简单的 Laravel 开始吧。 laravel 版本:5.4 0x01 环境搭建 laravel安装包下载地址 安装后配置验证页面。在 /routes/web.php 文件中添加一条路由&#xf…

神之浩劫2下载教程 MOBA新游神之浩劫2在哪下载/怎么下载

《神之浩劫2Smite 2》重新定义了MOBA游戏的征服模式,为玩家带来更多的互动和进展。最近的开发者深度挖掘展示了游戏地图的全新设计,既简化了基本操作,又丰富了游戏选择。游戏中的敌人也有了新的进展方式。例如,击败火巨人和金之怒…

【深度学习基础(1)】什么是深度学习,深度学习与机器学习的区别、深度学习基本原理,深度学习的进展和未来

文章目录 一. 深度学习概念二. 深度学习与机器学习的区别三. 理解深度学习的工作原理1. 每层的转换进行权重参数化2. 怎么衡量神经网络的质量3. 怎么减小损失值 四. 深度学习已取得的进展五. 人工智能的未来 - 不要太过焦虑跟不上 一. 深度学习概念 先放一张图来理解下人工智能…

powershell 注册全局热键——提升效率小工具

powershell 注册全局热键 01 前言 在处理一些重复工作问题的时候,想搞一个小工具,配合全局快捷键来提高效率。因为是Windows系统,想到C#,但是又不想用VS开发,因为那样不够灵活,没办法随时修改随时用&…

Spring ai 快速入门及使用,构建你自己的ai

第一步:创建springboot项目 jdk必须是17及以上 1.8用不了 第二步 选择web和ai的依赖 选择openai 第三步 需要配置openai key 配置 分享个免费或的apikey的地方New API 会免费赠送1刀的token spring.application.namespringAI spring.ai.openai.base-urlhttps://ap…

推荐一个好用的命令行工具ShellGPT

ShellGPT 配置安装常用功能聊天写命令并执行 高级功能函数调用角色管理 总结 这两天突然想到,现有的很多工具都在被大模型重构,比如诞生了像perplexity.ai 这种新交互形式的搜索引擎,就连wps也推出了AI服务,甚至都可以直接生成ppt…

JavaScript转换和校验数字

本节我们使用的案例还是继续之前的银行家应用程序,只不过我们呢增加了两个账号,代码如下: const account1 {owner: Jonas Schmedtmann,movements: [200, 455.23, -306.5, 25000, -642.21, -133.9, 79.97, 1300],interestRate: 1.2, // %pin…

Leetcode 145:二叉树的后序遍历(迭代法)

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 思路: 迭代法的思路是,使用栈,一层一层的将树节点遍历入栈。 比如下面这个树,使用迭代法,1)第一层,让根节点入栈。2&a…

20240428如何利用IDM下载磁链视频

缘起: https://weibo.com/tv/show/1034:4864336909500449 中国获奖独立纪录片《阿辉》揭秘红灯区“教父”的生存法则 5,751次观看 1年前 发布于 陕西 身为里中横 67.7万粉丝 互联网科技博主 微博原创视频博主 头条文章作者 https://weibo.com/tv/show/1034:4864…

树莓派驱动开发----spi flash设备w25q64开发

这期使用的是spi驱动开发框架&#xff0c;其实spi和iic合起来有一个 Regmap 子系统&#xff0c;下回讲这个&#xff01;&#xff01; 使用方法 &#xff1a;./w25q64App /dev/w25q64-device <cmd> <address> <cnt> <data> ... 可读写擦&#xff0…

代码审计之SAST自动化

前言: 很久没写文章了&#xff0c;有点忙&#xff0c;落个笔&#xff0c;分享一些捣鼓或说适配好的一些好玩的东西。 脚本工具不开源&#xff0c;给一些思路&#xff0c;希望能给大家带来一些收获。 笔者能力有限&#xff0c;如有错误&#xff0c;欢迎斧正。 正文&#xff1a…

文件分块+断点续传 实现大文件上传全栈解决方案(前端+nodejs)

1. 文件分块 将大文件切分成较小的片段&#xff08;通常称为分片或块&#xff09;&#xff0c;然后逐个上传这些分片。这种方法可以提高上传的稳定性&#xff0c;因为如果某个分片上传失败&#xff0c;只需要重新上传该分片而不需要重新上传整个文件。同时&#xff0c;分片上传…

linux 搭建知识库文档系统 mm-wiki

目录 一、前言 二、常用的知识库文档工具 2.1 PingCode 2.2 语雀 2.3 Tettra 2.4 Zoho Wiki 2.5 Helpjuice 2.6 SlimWiki 2.7 Document360 2.8 MM-Wiki 2.9 其他工具补充 三、MM-Wiki 介绍 3.1 什么是MM-Wiki 3.2 MM-Wiki 特点 四、搭建MM-Wiki前置准备 4.1 前置…

带环链表及例题

环形链表&#xff0c;链表中的尾节点指向链表中的某个节点导致形成循环的链表。 通过图可以这样表示。 我们一般采用快慢指针的方式解决带环链表的题目&#xff0c;下面直接上例题 环形链表 力扣链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; 让我们判断一个…

渗透测试之sql注入绕过技巧

在sql注入中&#xff0c;通常会将某些关键的字符过滤掉&#xff0c;以此来达到预防sql注入的目的。这时我们就可以通过某些技巧来绕过。 绕过技巧1&#xff1a; 这个是在某个比赛中出现的&#xff0c;当时并没有多少人成功绕过。 如下&#xff1a; 如下图&#xff1a;在php中…

Django前后端项目部署

Django前后端分离项目部署 本文采用阿里云服务器&#xff0c;centos7.9操作系统 本文默认服务器已安装nginx,mysql并且可以正常运行Django vue uwsgi nginx注意&#xff1a;先部署后端&#xff0c;使用postman测试请求没有问题后在修改vue中的axios文件中baseURL&#xff0…

PLC通过Modbus转Profinet网关连接变频器与电机通讯

Modbus转Profinet网关&#xff08;XD-MDPN100&#xff09;是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口&#xff0c;PLC作为控制中枢&#xff0c;变频器作为控制电机转速&#xff0c;通过Modbus转Profinet网关&#…

美国站群服务器的定义、功能以及在网站运营中的应用

美国站群服务器的定义、功能以及在网站运营中的应用 在当今互联网的蓬勃发展中&#xff0c;站群服务器已成为网站运营和SEO优化中不可或缺的重要工具之一。尤其是美国站群服务器&#xff0c;在全球范围内备受关注。本文将深入探讨美国站群服务器的定义、功能以及在网站运营中的…

【城市】应届生第一次打工需要知道的常识(薪资结构,社保,五险二金,个税,专项扣除)

【城市】应届生第一次打工需要知道的常识&#xff08;薪资结构&#xff0c;社保&#xff0c;五险二金&#xff0c;个税&#xff0c;专项扣除&#xff09; 文章目录 1、什么是应届生 & 如何界定应届生2、社保&#xff0c;五险一金&#xff0c;五险二金3、薪资结构&#xff0…