当前位置: 首页 > news >正文

如何实现本地mqtt服务器和云端服务器同步?

 有时候,一个物联网项目,A客户想要本地使用,B客户想要线上使用,C客户想要本地部署,当有网环境时能线上使用。这个时候就需要本地MQTT服务和线上MQTT服务能相互自动转发。

后来经我一翻研究,其实Activemq支持配置activemq.xml来实现两个broker(mqtt服务)的转发。但是线上服务器配置activemq.xml时,需要提供一个内网固定IP,但是一般用户网络没有固定IP,这种情况下,就可以再加一个利器ngrok,可以将内网TCP或HTTP协议及端口穿透,实现反向代理。

以下是实现步骤:
1、配置本地activemq.xml(在broker节点里加)

        <networkConnectors><!-- 连接到远程服务器 --><networkConnector uri="static://(tcp://112.2.10.28:61616)" duplex="true"  name="local-to-remote"/></networkConnectors>

 说明:地址112.2.10.28.61616是线上服务器地址,注意需配置服务器防火墙,开放此端口)

2、配置线上activemq.xml

		<networkConnectors><!-- 连接到公司服务器 --><networkConnector uri="static://(tcp://0.tcp.ap.ngrok.io:13164)" duplex="true" name="remote-to-local"/></networkConnectors>

说明:tcp://0.tcp.ap.ngrok.io:13164是通过ngrok生成的外部访问地址(下文会说到获取方法),13164端口同样需要配置服务器打开此端口。

3、安装和启动ngrok,实现内网穿透

(1)申请ngrok账号

        官网: https://www.ngrok.com


(2)本地电脑安装ngrok(以下是mac os示例,其它系统可参考官方文档,很简单):

brew install ngrok

(3)配置ngrok的token(token可在用户管理中获得): 

ngrok config add-authtoken 2VsdP4736wyq5I321VdL126hqRzf_38BHTUJvd2LGdfm4cm7X

(4)启动代理

ngrok tcp 192.168.110.168:61616

(5)启动后显示以下结果表示成功,得到一个TCP协议的外网地址,当访问这个ngrok地址时,就相当于访问本地192.168.110.168中61616这个地址了。

4、 线上activemq.xml和本地activemq.xml都配置完成后,重启两个activemq服务就可以。可以直接关掉activemq客户端,或是重启activemq服务。

5、actiemq显示以下表示转发成功:

 

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

相关文章:

  • HTB 靶机 Aero Write-up(Medium)
  • 应用app的服务器如何增加高并发
  • B+树知识点总结
  • vlan(虚拟局域网)逻辑图解+实验详解
  • mysql密码正确SpringBoot和Datagrip却连接不上
  • Seata 分布式事务 AT 模式
  • 20250605车充安服务器受木马攻击导致服务不可用
  • 【图片识别改名】如何批量将图片按图片上文字重命名?自动批量识别图片文字并命名,基于图片文字内容改名,WPF和京东ocr识别的解决方案
  • ajax学习手册
  • [AI绘画]sd学习记录(一)软件安装以及文生图界面初识、提示词写法
  • RabbitMQ实用技巧
  • 自定义事件wpf
  • OpenBayes 一周速览|TransPixeler 实现透明化文本到视频生成;统一图像定制框架 DreamO 上线,一键处理多种图像生成任务
  • 【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
  • 音视频之视频压缩编码的基本原理
  • Java中List的forEach用法详解
  • wpf Behaviors库实现支持多选操作进行后台绑定数据的ListView
  • 案例分享--汽车制动卡钳DIC测量
  • CICD实战(一) -----Jenkins的下载与安装
  • [pdf、epub]300道《软件方法》强化自测题业务建模需求分析共257页(202505更新)
  • Java八股文——集合「List篇」
  • Spring Boot缓存组件Ehcache、Caffeine、Redis、Hazelcast
  • 通过Chain Prompts方式将LLM的能力引入测试平台:正交实验测试用例生成
  • To be or Not to be, That‘s a Token——论文阅读笔记——Beyond the 80/20 Rule和R2R
  • 基础线性代数
  • 阿里云ACP云计算备考笔记 (3)——云存储RDS
  • HSL颜色控制及使用示例(Hue-Saturation-Lightness)
  • Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)
  • java使用文本相似度检测可以调整阈值
  • 深入解析与解决方案:处理Elasticsearch中all found copies are either stale or corrupt未分配分片问题