V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fingerxie
V2EX  ›  程序员

服务端如何实时同步状态变化?

  •  
  •   fingerxie · 5 小时 46 分钟前 · 986 次点击

    最近在做扫码登录,这个功能在展示二维码以后,会与其中一个认证服务的实例建立长连接,实时反馈二维码状态变更。

    在单实例情况下,这很好实现,但是多实例的话,状态变化时,就需要通知到对应实例。但是如何通知是一个问题。

    V 友们,各位大佬们,有什么好的方案去解决这个问题吗?

    20 条回复    2024-11-01 18:58:24 +08:00
    opengps
        1
    opengps  
       5 小时 41 分钟前
    不需要解决,本身就是得支持多个长连接
    esee
        2
    esee  
       5 小时 2 分钟前   ❤️ 1
    非得长连接?轮询不行么?
    spritecn
        3
    spritecn  
       4 小时 53 分钟前
    这个网关的会话保持就解决了吧
    fcten
        4
    fcten  
       4 小时 52 分钟前
    长连接接入需要一个 session 服务维护每个会话对应的连接
    扫码登录轮询就行了
    fingerxie
        5
    fingerxie  
    OP
       4 小时 37 分钟前
    @spritecn 不行吧,因为扫码的是手机端,并不能保证请求同一个服务吧?
    spritecn
        6
    spritecn  
       4 小时 35 分钟前
    @fingerxie 网关的会话保持一般无非就是 iphash 或是插 session 的思路,有啥不行
    vZexc0m
        7
    vZexc0m  
       4 小时 35 分钟前
    轮询不会比长连接消耗大
    jingrui
        8
    jingrui  
       4 小时 30 分钟前
    前端轮训,简单高效,登录并发也不会太高
    cat
        9
    cat  
       4 小时 2 分钟前
    连微信官网的扫码登录都是轮询…… https://mp.weixin.qq.com/ 折腾长连接干啥呀
    cccssss
        10
    cccssss  
       3 小时 59 分钟前
    redis publish ?消息队列广播?
    onceMore
        11
    onceMore  
       3 小时 41 分钟前 via Android
    直接轮询,方案越简单,可靠性越高
    ZeekChatCom
        12
    ZeekChatCom  
       2 小时 36 分钟前
    生成个 id 啊
    shadowyue
        13
    shadowyue  
       2 小时 30 分钟前
    轮询还是长链接要看你业务的契合度。
    至少前几年,我专门研究了下,淘宝的扫码登录就是轮询,微信的就是长链接。
    非常契合这两家的业务基础。淘宝就是查询多,微信作为聊天软件就是擅长维持长链接。
    hellomsg
        14
    hellomsg  
       2 小时 11 分钟前
    一两秒一个轮询对用户来说也不是不可以,用户体验没差别
    allecnm
        15
    allecnm  
       2 小时 6 分钟前
    微信支付宝都是轮询
    sujin190
        16
    sujin190  
       2 小时 4 分钟前
    其实这种还是使用 long polling 轮询实现更简单快捷,搞个异步 IO 的框架,挂起实现不要太简单
    hellomsg
        17
    hellomsg  
       1 小时 58 分钟前
    不说你业务的实现方式,只说你关心的点,我猜是在分布式环境中,客户端之间如何通信?就是消息路由。要么广播;要么有个中心负责转发给客户端所在的服务器,再下发给客户端。中心可以是消息队列。
    hellomsg
        18
    hellomsg  
       1 小时 53 分钟前
    简单轮询的方式,就是查数据库,数据库就是中心,主动去取。
    fingerxie
        19
    fingerxie  
    OP
       1 小时 53 分钟前
    @hellomsg 是这样,我也考虑采用消息队列来做。利用广播消息的机制实现。不过我在想有没有什么更好的方案
    spicy777
        20
    spicy777  
       1 小时 24 分钟前
    之前做的扫码登录都是用的轮询
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2774 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.