开发长连接推送服务,如何模拟 100w 客户端频繁交互?

2015-08-24 09:47:54 +08:00
 Feiox

最好能单机, Node Go Python 都可以,需要完成一定的业务逻辑。有现成的工具可以使用吗?

内容为 1k 左右的内容。平均每秒约有 1/20 的客户端发送消息,峰值要能实现 1/2 的用户同时发送。

11647 次点击
所在节点    Node.js
35 条回复
ovear
2015-08-24 18:40:56 +08:00
现在的项目都是几百万几千万起步了么。。膜拜。。
crystom
2015-08-24 18:51:08 +08:00
楼上重点全放在单机上了。。
zado
2015-08-24 19:29:56 +08:00
@mengzhuo 服务端的话,长连接并不等于并发,我用 32 位下编写的程序( 2GB 的用户内存空间)也可以支持到 100 万连接。不收发数据的话是几乎不需要花 CPU 时间的,如果不是瞬间建立大量连接的话,网卡流量也不是很大的。
Los
2015-08-24 20:25:29 +08:00
参考一下 erlang 的这篇文章
《 100 万并发连接服务器笔记之 1M 并发连接目标达成》
http://www.blogjava.net/yongboy/archive/2013/04/28/398558.html
mengzhuo
2015-08-24 20:46:51 +08:00
@zado

服务端不收发数据,拿来干嘛……
zado
2015-08-24 22:25:05 +08:00
@mengzhuo 是啊,我也不知道......
realpg
2015-08-25 02:21:27 +08:00
百万没比划过,单机搞过四十万并发持续 TCP 连接的单端口单机鉴权解码程序,传输量比较小没啥问题。
CPU IO NETIO 都不高 就是疯狂的吃内存 linux 内核都重新编译在 TCP 调度器做一些修改才能抗住这么高持续连接

至于上面几层人说的端口号问题,又不是服务器发起那么多远程连接, 65535 限制跟这个风马牛不相及……
服务器端只需要一个服务端口开出去……是客户端连过来的……
powergx
2015-08-25 02:28:00 +08:00
@realpg 客户端是单机
JonyOang
2015-08-25 07:20:08 +08:00
歪个楼,为什么这个帖子打开页面背景是黑色的
zonghua
2015-08-25 08:58:27 +08:00
@JonyOang V2EX 不同节点有不同主题的,这里是 node
JonyOang
2015-08-25 09:26:20 +08:00
@zonghua 涨知识了 哈
llbgurs
2015-08-25 12:09:48 +08:00
用 erlang 吧,省事,多找几台测试客户端的机器,跑一下就可以了
azhao
2015-08-25 13:33:00 +08:00
单机器模拟 100w 连接是不可能的,去阿里云或 aws 开虚拟机来做吧
jiangzhuo
2015-08-25 13:45:48 +08:00
单机别想了用 loadRunner 做集群方便 跟单机没太大区别
free6om
2015-08-26 14:31:42 +08:00
@jiumingmao 不需要同一台机器

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

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

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

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

© 2021 V2EX