Apache RocketMQ之集成RocketMQ_MQTT 安装部署协议

Apache RocketMQ 安装说明

安装步骤 参考快速开始

https://rocketmq.apache.org/zh/docs/quickStart/01quickstart

安装可视化rocketmq_dashboard下载地址

https://rocketmq.apache.org/zh/docs/4.x/deployment/03Dashboard/

安装rocketmq_mqtt

https://rocketmq.apache.org/zh/docs/4.x/mqtt/01RocketMQMQTTOverview

  1. broker.conf配置文件中添加参数,开启多队列分发特性 (备注:最好安装5.0.0版本)

enableLmq = true

enableMultiDispatch = true

2. 打包rocketmq- mqtt

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

cd rocketmq-mqtt

mvn -Prelease-all -DskipTests clean install -U

cd distribution/target/

target下是打包的包

3. 配置rocketmq-mqtt

下面例子中 ROCKETMQ所在机器192.168.33.22,ROCKETMQ-MQTT服务所在机器172.16.10.160

修改conf/connect.conf

mqttPort=1883

enablePrometheus=true

修改conf/meta.conf
IP换成要运行服务的机器的

selfAddress=172.16.10.160:25000

membersAddress=172.16.10.160:25000

修改conf/service.conf

metaAddr的IP换成要运行服务的机器的

username和secretKey配置了要记住,mqtt生产者要使用它做认证

eventNotifyRetryTopic=xx //notify重试topic,提前创建

clientRetryTopic=xx //客户端消息重试topic,提前创建

NAMESRV_ADDR的IP换成RocketMQ nameserver服务所在机器的IP

如下:

username=test

secretKey=test

NAMESRV_ADDR=192.168.33.22:9876

eventNotifyRetryTopic=eventNotifyRetryTopic

clientRetryTopic=clientRetryTopic

metaAddr=172.16.10.160:25000

  1. 初始化操作

创建topic

mqadmin updatetopic -c {cluster} -t {topic} -n {namesrv}

上面配置的eventNotifyRetryTopic和clientRetryTopic也必须创建
实际执行如下:

sh mqadmin updatetopic -c DefaultCluster -t eventNotifyRetryTopic -n 192.168.33.22:9876

sh mqadmin updatetopic -c DefaultCluster -t clientRetryTopic -n 192.168.33.22:9876

sh mqadmin updatetopic -c DefaultCluster -t test-topic -n 192.168.33.22:9876

Configure Gateway Node List:

mqadmin updateKvConfig -s LMQ -k LMQ_CONNECT_NODES -v {ip1,ip2} -n {namesrv}

实际执行命令

sh mqadmin updateKvConfig -s LMQ -k LMQ_CONNECT_NODES -v 172.16.10.160 -n 192.168.33.22:9876

Configure the first-level topic list

mqadmin updateKvConfig -s LMQ -k ALL_FIRST_TOPICS -v {topic1,topic2} -n {namesrv}

实际执行如下:

sh mqadmin updateKvConfig -s LMQ -k ALL_FIRST_TOPICS -v eventNotifyRetryTopic,clientRetryTopic,test-topic -n 192.168.33.22:9876

Configure a list of wildcard characters under each first-level topic

mqadmin updateKvConfig -s LMQ -k {topic} -v {topic/+} -n {namesrv}

实际执行如下:

mqadmin updateKvConfig -s LMQ -k eventNotifyRetryTopic -v eventNotifyRetryTopic/+ -n 192.168.33.22:9876

mqadmin updateKvConfig -s LMQ -k clientRetryTopic -v clientRetryTopic/+ -n 192.168.33.22:9876

mqadmin updateKvConfig -s LMQ -k test-topic -v test-topic/+ -n 192.168.33.22:9876

  1. 启动

cd bin

sh meta.sh start

sh mqtt.sh start

启动日志在$HOME/logs/start_out.log
启动完后应该meta对应25000端口,mqtt对应1883端口

  1. 测试

使用rocketmq-mqtt工程中的mqtt-example做测试

将其中的一些IP、topic改为实际的
经测试,可以用mqtt做生产者,rocketmq做消费者

MqttProducer 消息生产

RocketMQConsumer 消息消费

备注:需要开发的端口号

  1. Rocketmq 端口号9876
  2. Rocketmq_dashboard 端口号:9875(默认是:8080。如果需要修改:在原代码配置文件调整端口号9875 编译好的重新上传到服务器上)。
  3. Rocketmq_mqtt 端口号1883 监听代理端口号:10911,10909
  4. 修改配置文件mqtt bin目录下

4.1. runserver.sh 256m,256m 512m

4.2. runbroker.sh 512m 512m

相关推荐
小鸡脚来咯14 小时前
RocketMQ 常见面试题汇总
rocketmq
Apache IoTDB1 天前
谷歌编程之夏 2026:Apache IoTDB 项目征集正式开启!
apache·iotdb
隔叶听风1 天前
RocketMQ 与 Kafka 长轮询详解
数据库·kafka·rocketmq
C182981825751 天前
Rocketmq
java·rocketmq·java-rocketmq
一个天蝎座 白勺 程序猿1 天前
Apache IoTDB(17):IoTDB数据保留时间管理从TTL设置到智能数据生命周期控制
数据库·apache·时序数据库·iotdb
czlczl200209251 天前
RocketMQ如何实现与其它事务的一致性
rocketmq
DolphinScheduler社区1 天前
Apache DolphinScheduler 2 月社区动态:功能升级与优化齐飞
开源·apache·任务调度·开源社区·海豚调度·大数据工作流调度
jgyzl1 天前
2026.3.10 Apache POI的学习及思考
学习·apache
身如柳絮随风扬1 天前
Apache POI导出Word,PPT完整实现
spring boot·word·powerpoint·apache
xiaoliuliu123451 天前
CentOS 7 使用 apache-tomcat-7.0.27.tar.gz 详细步骤(解压、配置、启动、测试)
centos·tomcat·apache