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

相关推荐
Apache RocketMQ8 小时前
RocketMQ 源码解析——Controller 高可用切换架构
架构·rocketmq·java-rocketmq
Geek_Vison17 小时前
如何借助小程序容器技术实现跨端APP的敏捷开发
小程序·apache·敏捷流程
Apache RocketMQ17 小时前
Apache RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景
云原生·架构·apache·rocketmq·java-rocketmq
HEADKON19 小时前
司拉德帕Seladelpar对比熊去氧胆酸在原发性胆汁性胆管炎中的碱性磷酸酶降低幅度
rocketmq
RingWu2 天前
微服务架构-全链路追踪:Apache SkyWalking
微服务·架构·apache
heimeiyingwang2 天前
【架构实战】RocketMQ实战:分布式消息中间件
分布式·架构·rocketmq
Donk_672 天前
高可用-Keepalived 解析
运维·服务器·apache
电魂泡哥2 天前
RocketMq是CP模型还是AP模型
rocketmq
Apache RocketMQ3 天前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
zkkkkkkkkkkkkk4 天前
python使用celery实现异步任务
redis·python·rabbitmq·rocketmq