关于 MQTT 协议有几个问题想请教

68 天前
 majianglin
问题 1:
我们物联网项目想使用 MQTT 作为通讯协议
方案 1: 使用阿里云 云消息队列 MQTT 版,Java 服务器接入消息队列
方案 2:Java 服务器自己实现 MQTT 协议
这两个方案你们怎么选择的?有哪些优劣? 有更好的方案吗?

问题 2:
目前市区内的 4G 物联网网络是否稳定?是否需要加上短信通知?

问题 3:
Java 有哪些好用的 MQTT 开源框架做应用开发,最好是开箱即用,和业务解耦,业务程序员最好不关心协议实现
4614 次点击
所在节点    程序员
53 条回复
me1onsoda
68 天前
Java 自研的话 vertx 挺方便的。如果没有研发能力最好还是买个云服务 emqx 之类的,拿别人开源的不好填坑
majianglin
68 天前
@me1onsoda 多谢了

vertx 有点小众,还是想用 spring 全家桶。云服务这块我再研究下
typ1805
68 天前
我们物联网项目用的是 ActiveMQ 的 MQTT 传输数据,springboot 从 MQ 订阅数据做处理的
tool2dx
68 天前
MQTT 算是相对简单的 TCP 协议了,可以考虑自己写一下,代码量并不多。
LLaMA2
68 天前
server https://github.com/eclipse/mosquitto

java client https://github.com/eclipse/paho.mqtt.java

注意协议的各版本之间的差异.cs 各版本是否匹配.各类服务端实现对 qos 的支持情况

综合而言,看项目,项目重要那就买买买,不要试图自研,自己玩或者项目甲方对 mqtt 部分功能有一定的容忍度,那就开源跑起来.


例如一些项目中做某个报表定时推送,使用 mqtt 推送,同时也有主动 http 请求,甲方不是强烈要求送达率的话,仿真各也有 http 兜底,那就开源搞起来

如果是某些物联网设备使用 mqtt 交互上报关键数据,那还是买买买,出了情况方便把锅顺利的抡起来
lancelock
68 天前
为什么除了买就是自己实现,搭个开源的 broker 不行吗
zzjcool
68 天前
你们团队有专人维护,并且技术上有信心解决就自建,不然还是上云

客户端的话看看 emq 的文档,我感觉 emq 在 mqtt 领域还是领先的
StinkyTofus
68 天前
买一台云服务器自己搭建 EMQX , 特别简单好用, 我觉得比阿里云的后台配置 MQTT 好用多了, 而且阿里云的 MQTT 经常出问题。
zouri
68 天前
问题一:mqtt broker 服务器可以使用开源搭建,目前这两个用户较多 emqx mosquitto
问题二:我个人经验目前 4G 物联网足够稳定
问题三:EclipsePaho 是一个开源项目为多种语言实现了 MQTT 客户端库,可以参考使用 https://eclipse.dev/paho/index.php?page=downloads.php
xytest
68 天前
你的需求和我最近带的项目一样。(我们有大批量的设备走 485 接口,然后通过轮询采集后通过物联网走 mqtt 上报)
问题一:我们没有考虑自建,因为感觉后期维护成本有点高。在对比下选择了腾讯云的物联网平台原因:比阿里成本低,实现就是设备推送到腾讯云物联网平台,平台在接收消息后通过数据流传到服务器。
问题二:网络稳定这个问题只要你信号覆盖情况下都没有问题,应该考虑的数据端的数据采集稳定,例如多设备轮询,在遇到报错的时候,是否重新查询。
问题三:开源平台当时也试过几个还是出现了问题一的情况就是维护成本高。
flmn
68 天前
有开源的 emqx
glitterzhong
68 天前
docker 直接搭建 emqx 就行
majianglin
68 天前
多谢楼上各位的答疑解惑,学到了很多
GooMS
68 天前
搭起来还是不麻烦的,主要看预算
halov
68 天前
MQTT 还是建议使用 EMQX 搭建 , 我们公司 使用消息中间件 同时 充当 MQTT 服务器 坑挺多的
fffq
68 天前
直接使用 emqx 吧,
mosfet
68 天前
thingsboard+emqx
开发都省了
vfs
68 天前
除非你的时间预算很充分, 不然不要自己写 MQTT 服务器端。 我正在实现一个 MQTT Broker (公司项目), 这个协议 RFC 很简单, 真正做起来, 细节很多。
DonaldY
68 天前
netty 里就有,直接使用。
andyxq
68 天前
作为从业者,我觉得 MQTT Broker 实现起来难度不算太大,但是做到较好的性能需要投入很多的精力。我测试过一些开源的或商业的 Broker, EMQX 是算是性能比较好的,开放的插件也比较多,如果没有足够的研发能力建议直接用 EMQX.
市区用 4G 基本没问题,但是远离市区信号不好的地方可能会有频繁上下线的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1072878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX