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

相关推荐
阿里云云原生7 天前
RocketMQ 和 Higress 荣获“直通乌镇”全球互联网大赛开源先锋社区奖
rocketmq
源图客10 天前
Apache Flink 2.3.0(最新版本)
大数据·flink·apache
千里达景区票务系统11 天前
消息队列选型对比:RabbitMQ vs RocketMQ vs Kafka
kafka·消息队列·rabbitmq·rocketmq
代立冬13 天前
927 个 PR:Apache SeaTunnel 3.0.0 正式发布!AI 时代,数据集成正在迎来新的可能
人工智能·apache
zhongben_keji14 天前
家政小程序开发全解:经营模式、品类矩阵、派单约束与信用核验
线性代数·矩阵·apache
weixin_1772972206915 天前
二手旧物回收小程序先要解决的不是下单,是“上门之后价格变了怎么办“
小程序·apache
努力变的更好15 天前
H5与小程序之间的回调
前端·小程序·apache
阿里云云原生16 天前
阿里云云原生四项 AI 应用工程化实荣获“鼎新杯”优秀案例
rocketmq
阿里云云原生16 天前
Qoder Cloud Agents 手脑分离实践:RocketMQ LiteTopic 如何支撑规模化长程 Agent 任务
rocketmq
阳光不锈@17 天前
三大主流消息队列架构设计思想剖析:从 RabbitMQ 到 RocketMQ 的改造实践
kafka·rabbitmq·rocketmq·rabbit改造rocket·去除rabbitmq·rabbitmq改造