• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zzlyzq
V2EX  ›  程序员

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

  •  
  •   zzlyzq · Jul 9, 2025 · 1601 views
    This topic created in 312 days ago, the information mentioned may be changed or developed.

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

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

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

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

    请大神赐教。

    4 replies    2025-07-11 09:07:04 +08:00
    aladdinding
        1
    aladdinding  
       Jul 9, 2025
    一般是有长连接网关,根据 msgId 对应不同的业务服务器
    lrvy
        2
    lrvy  
       Jul 9, 2025
    https://github.com/singchia/frontier 试试这个长连接网关
    zzlyzq
        3
    zzlyzq  
    OP
       Jul 11, 2025
    @aladdinding 有道理。我们可以根据模块 sn 号制定一个算法,这样模块就会自己去找相应的主机了。
    zzlyzq
        4
    zzlyzq  
    OP
       Jul 11, 2025
    @lrvy 不错不错,新项目可以参考。老项目还是得兼顾过去已经卖出去的模块。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2642 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.