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

131 天前
 jeanz

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

下面是可行的几种方案:

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

  2. socket 连接

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

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

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

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

中间可以搞个 redis ,pub sub 模式解耦。
jeanz
131 天前
@rocmax #13 大致有思路了,感谢大佬耐心解答
idealhs
131 天前
SignalR

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX