V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zzlyzq
V2EX  ›  程序员

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

  •  
  •   zzlyzq · 55 天前 · 1139 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    请大神赐教。

    4 条回复    2025-07-11 09:07:04 +08:00
    aladdinding
        1
    aladdinding  
       55 天前
    一般是有长连接网关,根据 msgId 对应不同的业务服务器
    lrvy
        2
    lrvy  
       54 天前
    https://github.com/singchia/frontier 试试这个长连接网关
    zzlyzq
        3
    zzlyzq  
    OP
       53 天前
    @aladdinding 有道理。我们可以根据模块 sn 号制定一个算法,这样模块就会自己去找相应的主机了。
    zzlyzq
        4
    zzlyzq  
    OP
       53 天前
    @lrvy 不错不错,新项目可以参考。老项目还是得兼顾过去已经卖出去的模块。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3186 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:57 · PVG 18:57 · LAX 03:57 · JFK 06:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.