最近有个事,用户需要给他个服务器方案,要求是支持 10W 以上的手机并发请求。以前还没弄个手机相关的,我想应该是用 json 交互吧,有什么服务器方案可选吗?云服务,可不可以?
用途就是手机给服务器发端数据,服务器将数据特殊处理以后返回给手机。我估计缓存都基本用不上。
其实我个人感觉就好像是一段程序,用 node.js 最好。目前这个要求只是为了做个 demo,用来去和风险谈的。
这个方案估计是做 PUSH 用的吧,我们一般要求三千万的并发,是指 socket 长连接,一般单台服务器可以支撑到 100-200W,你可以去搜下 mqtt 的开源解决方案,用 C 的或 Java 的都行,Java 一般用 Netty 来搞,可以支撑到 150W 左右 (8 核 16G 内存)
#7 楼 @u1378130755 那得有多大访问量啊,一般的 web app 服务器都能抗住动态请求并发 500 左右,如果用 python 或者 ruby 可以起多个实例,这样算起来要搞好多服务器;我们的客户端每天将近 20 亿的 HTTP 请求量,都没搞那么多并发。。。另外,要了解下是神马业务类型,瓶颈不一定在 WEB 这部分,如果是事务型业务比如电商类,瓶颈在数据库和磁盘 I/O,如果是内容类,比如网易新闻,youku 客户端,这种类型大部分数据都可以通过 cache 来抗压,本身数据系统压力很小,cache 命中率很高的话单台服务器上万的并发一点都不难。
#12 楼 @u1378130755 不靠谱啊,都不知道具体业务类型,怎么写,那还不如直接放几个静态 json 文件来请求,瓶颈基本就是磁盘 IO 了,可能五六台服务器就搞定了。。。
#17 楼 @u1378130755 那就搞复杂点好了,nginx*n + cache*n + app server*n + cache*n + MySQL cluster,8 核 16G+SSD 硬盘 +1000M LAN,另外 IDC 出口带宽也有要求的,需要计算下数据量;数据库如果是瓶颈可以全用内存读写。。。
可以看看 @flyerhzm 黃智敏 這個
https://speakerdeck.com/flyerhzm/gou-jian-yi-bu-apifu-wu
他也在 Homepage http://huangzhimin.com/ 上寫到 I have built a large high-traffic platform, with more than 250 million users, handle more than 300k rpm. I also built some async non-blocking api services, based on EM + fiber, only 16 ruby instances can easily handle 240k rpm.