主语言 Java ,目前需求是后台对接数量众多的硬件终端,需要双向通信(心跳,数据交互),因此就涉及到了相关技术选型。
目前系统已有 RocketMQ ,因此想尽可能用它来实现,减少中间件引入,避免增加维护成本,但是看到有文章说 RocketMQ 不适合该场景。
备选有 MQTT 、Netty 。
网上一般都是推荐 MQTT ,请问各位大佬有没有什么好的建议呢?
1
BingoXuan 2022-02-11 15:28:47 +08:00
|
2
mineralsalt 2022-02-11 15:32:53 +08:00
我就是搞这个的, 我们对接了大量的自动售货机, 智能冰箱等, 用的就是 MQTT 协议, 挺好用的, 自己搭建也方便, 阿里云腾讯云上也有现成的服务可以买
|
3
masterclock 2022-02-11 15:38:29 +08:00
MQTT
iot 设备,几乎不存在其他选项,如果考虑其他选项,“再想想”*100 |
4
Geekerstar OP @mineralsalt 我看 MQTT 有多个版本,MQTT 5.0 、MQTT 3.1.1 和 MQTT 3.1 协议,请问这个版本选择有没有什么需要注意的呢?选最新 5.0 有没有什么坑呢?
|
5
meteor957 2022-02-11 16:25:55 +08:00 via Android
mqtt
|
6
youngce 2022-02-11 17:57:43 +08:00
MQTT 严格的属于通信协议,服务端需要自建或者云服务,自建比如 EMQX 支持 MQTT 转到 KAFKA 、RocketMQ 这些中间件。
MQTT 云服务据了解,腾讯云、电信云 kafka 、移动云使用 pulsar 。 具体当时我们当时嵌入式设备种类太多需要兼容的通讯协议也很多,自建的 mqtt 对接的是 kafka ,使用 NB-iot 协议走移动云的使用的 pulsar 。 |
7
Geekerstar OP @youngce 感谢回复,目前想用 emqx 开源的,目前设备量不超过 500 ,这种量级可以么?
|
8
Bijiabo 2022-02-11 18:22:56 +08:00
设备量 500 太少了,EMQ X 肯定满足需求。
置于 MQTT 协议的选择,取决于设备端的特性和支持程度,不同的设备类型、芯片原厂 /方案商提供的 MQTT SDK 会有一些差异,或者你们同事自己移植,与他们讨论一下吧。 |
9
freeznet 2022-02-11 18:42:31 +08:00
推一下 Pulsar ,物联网场景 MQTT 可以看一下 MoP https://github.com/streamnative/mop
|
10
mineralsalt 2022-02-11 19:05:16 +08:00
@Geekerstar 才 500, 你说数量众多, 我还以为最少几百万设备呢
|
11
Geekerstar OP |