V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jeanz
V2EX  ›  问与答

询问一个领导在线活动问答系统技术方案

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

    公司需要做一个领导在线问答系统,需要做到实时提问信息展示和回答信息展示,活动时长大概两个小时左右,人数上限应该在一万人,现在在选定用什么方案来实现页面实时展示最新消息 (框架 SpringBoot + Vue2 )

    下面是可行的几种方案:

    1. 客户端轮询获取最新消息

    2. socket 连接

    3. sse (server send enevt) 这个是在用 chagpt 了解到的方法

    目前是考虑用 sse ,但是不知道这个能实现需要的功能,或者有什么其他方面需要考虑的地方吗

    或者大家能给出建议用什么方式实现更好吗

    15 条回复    2024-08-13 16:40:45 +08:00
    duanxianze
        1
    duanxianze  
       84 天前
    两万人?两万人都能随时发言吗?先不说这难度大的离谱,就算做出来了,这么多人发言啥也看不见啊
    jeanz
        2
    jeanz  
    OP
       84 天前
    @duanxianze #1 发言人数不会那么多,大概全程几百人,但是访问浏览人数上限应该能到一万人(是给其他公司省公司用的,全省人数很多)
    iikebug
        3
    iikebug  
       84 天前
    sse 别用了,为啥不用 socket ,没理由想要用 sse
    rocmax
        4
    rocmax  
       84 天前 via Android
    sse 是单向通道,一次请求多次响应,跟你的需求不符。
    1 万个 websocket 连接性能好点的服务器应该是抗得住的,如果怕出问题就用队列解耦,分布式处理
    ZGame
        5
    ZGame  
       84 天前
    一万人.. 很多直播间都不够 1w 。。
    sagaxu
        6
    sagaxu  
       84 天前
    这不是最典型的 websocket 场景么?
    superliy
        7
    superliy  
       84 天前
    netty websocket 不是轻轻松松吗
    jeanz
        8
    jeanz  
    OP
       84 天前
    @rocmax #4 因为我想的是大部人都是单向的来观看这个问答,不会有太多人提问,就想着用单向通信来做
    rocmax
        9
    rocmax  
       84 天前 via Android
    @jeanz 每个客户端都维持一个长连接和 websocket 没区别,客户端发消息还得单独处理
    jeanz
        10
    jeanz  
    OP
       84 天前 via iPhone
    @rocmax #9 这样的话客户端会消耗更多资源吗?还需要考虑他们用的古老的机器以及一部分换成的 arm“国产”操作系统
    rocmax
        11
    rocmax  
       84 天前 via Android
    @jeanz 客户端就一个连接,能跑浏览器就行。问题在服务器端,毕竟 websocket 不好做负载均衡。
    反倒用 sse 的话旧浏览器不一定支持,比如 ie 。
    jeanz
        12
    jeanz  
    OP
       84 天前
    @rocmax #11 大佬能在展开说一下负载均衡这个吗?因为这个系统最终需要跑在 k8s 上,为了应对流量,是计划开多个 pod 来做负载的
    rocmax
        13
    rocmax  
       84 天前 via Android   ❤️ 2
    简单的来说在你的应用场景下,用户 1,2 连接在 nodeA ,用户 3,4 连接在 nodeB ,这时候 A 处理了用户 1 的提问,回答只能广播到 1 和 2 ,无法发给 3,4 。

    中间可以搞个 redis ,pub sub 模式解耦。
    jeanz
        14
    jeanz  
    OP
       84 天前
    @rocmax #13 大致有思路了,感谢大佬耐心解答
    idealhs
        15
    idealhs  
       83 天前
    SignalR
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4120 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.