询问一个领导在线活动问答系统技术方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jeanz
0.01D
V2EX    问与答

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

  •  
  •   jeanz 2024-08-13 09:42:36 +08:00 1594 次点击
    这是一个创建于 472 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    下面是可行的几种方案:

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

    2. socket 连接

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

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

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

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

    中间可以搞个 redis ,pub sub 模式解耦。
    jeanz
        14
    jeanz  
    OP
       2024-08-13 10:59:28 +08:00
    @rocmax #13 大致有思路了,感谢大佬耐心解答
    idealhs
        15
    idealhs  
       2024-08-13 16:40:45 +08:00
    SignalR
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4532 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 09:55 PVG 17:55 LAX 01:55 JFK 04:55
    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