
公司需要做一个领导在线问答系统,需要做到实时提问信息展示和回答信息展示,活动时长大概两个小时左右,人数上限应该在一万人,现在在选定用什么方案来实现页面实时展示最新消息 (框架 SpringBoot + Vue2 )
下面是可行的几种方案:
客户端轮询获取最新消息
socket 连接
sse (server send enevt) 这个是在用 chagpt 了解到的方法
目前是考虑用 sse ,但是不知道这个能实现需要的功能,或者有什么其他方面需要考虑的地方吗
或者大家能给出建议用什么方式实现更好吗
1 duanxianze 2024-08-13 09:54:20 +08:00 两万人?两万人都能随时发言吗?先不说这难度大的离谱,就算做出来了,这么多人发言啥也看不见啊 |
2 jeanz OP @duanxianze #1 发言人数不会那么多,大概全程几百人,但是访问浏览人数上限应该能到一万人(是给其他公司省公司用的,全省人数很多) |
3 iikebug 2024-08-13 10:00:20 +08:00 sse 别用了,为啥不用 socket ,没理由想要用 sse |
5 ZGame 2024-08-13 10:01:49 +08:00 一万人.. 很多直播间都不够 1w 。。 |
6 sagaxu 2024-08-13 10:02:52 +08:00 这不是最典型的 websocket 场景么? |
7 superliy 2024-08-13 10:04:43 +08:00 netty websocket 不是轻轻松松吗 |
10 jeanz OP @rocmax #9 这样的话客户端会消耗更多资源吗?还需要考虑他们用的古老的机器以及一部分换成的 arm“国产”操作系统 |
11 rocmax 2024-08-13 10:25:23 +08:00 via Android @jeanz 客户端就一个连接,能跑浏览器就行。问题在服务器端,毕竟 websocket 不好做负载均衡。 反倒用 sse 的话旧浏览器不一定支持,比如 ie 。 |
12 jeanz OP @rocmax #11 大佬能在展开说一下负载均衡这个吗?因为这个系统最终需要跑在 k8s 上,为了应对流量,是计划开多个 pod 来做负载的 |
13 rocmax 2024-08-13 10:48:12 +08:00 via Android 简单的来说在你的应用场景下,用户 1,2 连接在 nodeA ,用户 3,4 连接在 nodeB ,这时候 A 处理了用户 1 的提问,回答只能广播到 1 和 2 ,无法发给 3,4 。 中间可以搞个 redis ,pub sub 模式解耦。 |
15 idealhs 2024-08-13 16:40:45 +08:00 |