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

websocket 多实例问题

  • &bsp;
  •   macscsbf 2021-12-10 15:41:36 +08:00 2206 次点击
    这是一个创建于 1468 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在是 k8s 上我开了多个 pod 的服务,每个服务都是一个 websocket 服务端,外部有设备通过 nginx 代理随机选择我的一个 pod 进行连接,我接收连接会请求另一个服务校验, 另一个服务就会查看这个设备之前是否在线,如果在线就往 消息队列里推送踢设备请求,然后我会再建立新的连接。现在问题是设备关机了,但是 socket 连接还未断开,如果设备重启的很快又会创建一个新的连接进来,然后这个连接和之前的连接可能在同一个 pod 上,因为另一个服务会知道这个设备是在线,所以要踢掉旧的连接,但是他是往消息队列里推送,所以另一个服务并不知道到底有没有成功踢除设备, 而这时候我的服务又创建一个新的连接把新的连接踢掉了,这就不知道怎么处理了,目前我就是让服务睡了几秒保证踢掉那个设备。不知道大佬们有什么想法。

    4 条回复    2021-12-13 10:18:51 +08:00
    XyIsMy
        1
    XyIsMy  
       2021-12-10 16:52:47 +08:00
    就不能简化下描述么。而且设备关机了,socket 资源也会释放的呀,没有这个机制就加一层 心跳机制,N 秒没有心跳,就直接 T 掉就好了
    sujin190
        2
    sujin190  
       2021-12-10 17:01:31 +08:00 via Android
    websocket 过 nginx 跪了

    关于下线问题客户端开心跳,服务端也还要做心跳超时啊,而且吧一般来说负载均衡应该设置为同一个设备始终连接到同一个 pod ,这样可以确保新连接建立时踢掉老连接,保证一个设备只会有一个连接在线才是
    macscsbf
        3
    macscsbf  
    OP
       2021-12-13 10:17:29 +08:00
    这个能做到指定吗,我是有超时的呀,但是超时时间是 95 秒,客户端是 90 秒 1ping,客户端关机了立马上线的话就会有问题
    macscsbf
        4
    macscsbf  
    OP
       2021-12-13 10:18:51 +08:00
    @XyIsMy 客户端是 90s 1 次 ping 我设置的超时时间是 95 秒,现在设备关机就不会释放 socket,所以如果设备立马重新连上来就会有这个问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5417 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 06:42 PVG 14:42 LAX 22:42 JFK 01:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86