物联网系统长连接服务器与容器平台

55 天前
 zzlyzq

目前,有一套物联网平台,采用的是十年前的 dcos marathon 平台。 如果想从外界访问容器内部服务,可以通过 marathon-lb 。 marathon-lb 是 haproxy 改装的,支持 http 以及 tcp 服务,长连接也可以。 但是,每次容器集群内部有变动,marathon-lb 会自动从 dcos master 节点获取信息,并自动更新自己的配置。 如果集群里面有长连接服务。在 marathon-lb 因容器服务重启或者其他变更导致变动时,会重新应用一个 haproxy 配置,但是老的连接还可以继续保持。 这种策略会造成随着时间的推移,会有更多的 haproxy 进程出现,虽然只是会保持老的 tcp 连接。

可是,在物联网平台场景下,物联网设备通过 tcp 与服务器建立长连接是不需要使用的。

想了解下,大家有没有类似场景,提醒一下笨笨的我,你们是怎么做的架构。

我想,理想中的长连接服务可能是采用 c++或者 golang 编写,直接运行在宿主机吧。前边可以采用 lb 一下。

请大神赐教。

1140 次点击
所在节点    程序员
4 条回复
aladdinding
55 天前
一般是有长连接网关,根据 msgId 对应不同的业务服务器
lrvy
55 天前
https://github.com/singchia/frontier 试试这个长连接网关
zzlyzq
53 天前
@aladdinding 有道理。我们可以根据模块 sn 号制定一个算法,这样模块就会自己去找相应的主机了。
zzlyzq
53 天前
@lrvy 不错不错,新项目可以参考。老项目还是得兼顾过去已经卖出去的模块。

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

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

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

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

© 2021 V2EX