有没有 MQTT 高可用负载均衡方案

2024-03-08 20:13:48 +08:00
 laters

目前设备连接 MQTT ,多个 MQ server 后台不清楚设备具体连接到了哪个 server 上,导致推送时不知道使用哪个 server 推送消息给设备

有没有 MQTT 高可用、负载均衡方案

6982 次点击
所在节点    程序员
40 条回复
R4rvZ6agNVWr56V0
2024-03-08 20:43:49 +08:00
可以用 nginx 反向代理做 LB
laters
2024-03-08 20:48:55 +08:00
@GeekGao 目前是 nginx upstream 转发, 但问题是不清楚设备具体连接到了哪个 server 上,导致推送时不知道使用哪个 server 推送消息给设备
R4rvZ6agNVWr56V0
2024-03-08 22:28:47 +08:00
@laters 你的这个业务为啥一定要知道使用哪个 server 推送消息给设备?
uleh
2024-03-08 22:32:43 +08:00
MQTT 是长连接,这种模式一般要在业务服务前面架一个消息 broker 专门负责连接管理和消息收发。
me1onsoda
2024-03-08 22:42:38 +08:00
emqx ?这种商业产品肯定妥妥的,你这种方式不叫集群
laters
2024-03-08 22:52:54 +08:00
@me1onsoda 还有类似的吗
laters
2024-03-08 22:53:02 +08:00
@uleh 有类似的工具和库吗
laters
2024-03-08 22:53:46 +08:00
@GeekGao #3 不然有 1 、2 服务器,客户端只连接了 1 ,如果不知道连接了哪个,怎么推送消息
R4rvZ6agNVWr56V0
2024-03-08 22:58:08 +08:00
@laters 对外暴露的 IP 不就是同一个么。。。
me1onsoda
2024-03-08 23:05:28 +08:00
@laters 有哪里不满足需要的吗
Pony69
2024-03-08 23:22:35 +08:00
消息路由?以前工作遇到过类似的。
laters
2024-03-08 23:29:08 +08:00
@GeekGao #9 现在只能俩 MQTT server 一起发才能保证客户端能接收到,然后后台不知道用哪个 server 给客户端推送
laters
2024-03-08 23:29:19 +08:00
@me1onsoda #10 现在只能俩 MQTT server 一起发才能保证客户端能接收到,然后后台不知道用哪个 server 给客户端推送
me1onsoda
2024-03-09 01:30:04 +08:00
@laters 最简陋的方案就是 ng 负载均衡按照设备编号选择连接哪台 broker ,给设备推送消息同理
uleh
2024-03-09 08:27:57 +08:00
@laters 5 楼说的 emqx 就是啊
laters
2024-03-09 09:36:46 +08:00
@uleh #15 除了这种商业的还有别的方案吗
mango88
2024-03-09 09:53:46 +08:00
设备连接后不上报连接信息的吗
xiyou007
2024-03-09 09:59:21 +08:00
emqx 也不是商用的, 你自己搭一个, 几个 emqx-节点 ,emqx 也搭集群的, 官网有教程, 上面再搭个 haproxy 做负载,
xiyou007
2024-03-09 09:59:47 +08:00
@xiyou007 说错,emqx 也有免费开源的
l0wkey
2024-03-09 10:13:31 +08:00
百度之前开源了个 MQTT broker ,好像叫 bifromq

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

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

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

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

© 2021 V2EX