大量客户端与服务器持续通信,大概一秒 1 次的频率,使用 websocket 和 http 请求,哪种方式对服务器负载更低?

2018-02-26 10:55:44 +08:00
 bazzi91666666

请教各位大大,或者有什么资料能参考吗

5720 次点击
所在节点    程序员
13 条回复
litter123
2018-02-26 11:02:17 +08:00
如果不是要从 50000qps 提升到 500000qps,我建议先考虑提升机器配置
mengzhuo
2018-02-26 11:07:37 +08:00
能加机器么?
压力是均匀还是集中的?
有状态么?
一定要用 http 么?
一定要用 tcp 么?
guoyang
2018-02-26 11:14:42 +08:00
不是很清楚所谓的 1 秒一次,对于 client 来说是上行还是下行,如果只是接受消息,我觉得这两者都没有任何问题。问题的关键在于你服务端是否可以水平扩展,不在于到底选择哪种通讯协议。你这种描述问题的方式,基本上没有人能够给你提供有用的答案。
jiantao
2018-02-26 11:18:46 +08:00
websocket
SYP
2018-02-26 11:25:48 +08:00
短连接效率上怎么能跟长连接比。
linyinma
2018-02-26 11:33:36 +08:00
( 1 )大量客户端;( 2 )一秒一次频率: 假设传输层使用 TCP,在 1 秒一次频率下肯定 TCP 长连接较为合理, 但存在大量客户端但就涉及架构(单机 /分布式 /多进程 /多线程)&网络( epoll/select ).....;


这种需求下我先想到的是传输层使用 UDP 协议,应用层自定义,但具体还是要根据需求架构决定~~
enenaaa
2018-02-26 11:46:03 +08:00
用长连接。http 虽然可以连接复用, 但还是得用轮询模式,不适合广播类应用。
不考虑网页应用的话,udp 也是一个选择。
realpg
2018-02-26 12:02:11 +08:00
udp 比较合适……
cxh116
2018-02-26 12:04:02 +08:00
grpc stream
zjsxwc
2018-02-26 13:01:00 +08:00
用 udp +1
MeteorCat
2018-02-26 13:17:34 +08:00
游戏服务端吗?如果是的话可以把 http 去除,其次就是 tcp 和 udp 的选择,如果是要求高可靠性不计较太多访问开销,那么可以考虑 tcp(当然 udp 也有可靠性传输的方案,但是入门门槛不低所以推荐比较广泛的 tcp)
fcten
2018-02-26 14:31:52 +08:00
如果是单向的向服务端提交数据,那么两者差别不大,各有优势。http 无状态水平扩展更容易。websocket 无需重复传输 http 头比较省流量。
如果双向的数据通讯,那么毫无疑问选择 webscoket。http 只有在不兼容 websocket 的平台上才有考虑的必要。
HaoyangWei
2018-02-26 17:34:43 +08:00
接入服务器用短连接,后台用长连接,不知道这样如何?
客户端多了堆接入服务器就好了

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

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

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

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

© 2021 V2EX