瞬间并发量能达到两万,服务器四核8g,备选语言php python,求方案
|
wzxjohnNov 13, 2014 via iPhone
1
黄牛你好。
|
|
2
@wzxjohn 怎么是黄牛?
|
|
msg7086Nov 13, 2014
3
并发两万是什么概念?
瞬时连接数到两万的话,建议考虑基于event模型的架构,比如openresty。 PHP的瞬时连接数能到500就不错了。 |
|
5
@msg7086 客户需求是这样的 要求达到瞬间两万 现在考虑用hhvm 候选golang
|
|
zjxubinbinNov 13, 2014 via Android
6
Gunicorn+gevent
|
|
coldwindsNov 13, 2014
7
swoole
|
|
msg7086Nov 13, 2014
8
@zaishanfeng hhvm跟不上的吧。
顺便一提,都瞬间并发2万的,最起码得来个几十万的资金支持吧。 瞬间2万,每个请求假定是100ms,那就是每秒20万请求,每天至少能跑170亿请求。 京东这级别的都不知道平时有没有并发2万。 |
|
RemRainNov 13, 2014 via iPhone
9
PHP 是进程或者线程模型,一个线程同时只能处理一个请求,并发两万个线程能要了 server 的命。除非用 PHP 裸写 socket,用 pool 或者 epoll 模型才有一点希望
|
|
goofansuNov 13, 2014 via iPhone
10
数据库才是瓶颈
|
|
11
@msg7086 这个是临时需求 他们不愿意花钱买服务器
|
|
12
@goofansu 这个级别server也是瓶颈
|
|
13
也许nginx + lua可以扛得住?
|
|
14
据我估计他们真实并发能有五六千就不错了,可是客户很强硬,搞死我了,哎
|
|
abelyaoNov 13, 2014 via Android
15
@zaishanfeng 了解一下实际可能的访问量,有时候客户尽会瞎扯,浪费了许多时间去滥开发
|
|
changshaNov 13, 2014 via iPhone
16
都在bb 能不能给点实际的?
|
|
17
@abelyao 他们前期推广做的比较好,到时候抢购的人应该会比较多
|
|
msg7086Nov 13, 2014
18
@zaishanfeng 加钱嘛?
nginx+lua的速度还是不错的,基本都异步而且开发应该也不算太麻烦。 特别是如果请求和返回值不要求严格一致的话,还可以扔进redis队列里慢慢处理。 之前写了个简单的bt tracker,每秒250请求在一台i3上基本看不出CPU占用。 |
|
sercoNov 13, 2014 via iPad
19
@zaishanfeng 必须event IO模型才可能,语言限定的话
|
|
abelyaoNov 13, 2014 via Android
20
@zaishanfeng 其实就是文字上的表述问题,例如 “每分钟处理20000次请求” 听起来也是 “瞬间”,但平均下来每秒只要处理大约 333 次就可以了,具体还是要看实际访问量+沟通吧,如果真的是每秒 20000 次请求,不加钱别谈了,这么大的项目还这么吝啬。
|
|
21
@abelyao 就跟抢购小米一样,整点的那几秒,请求会很多,也就那几秒,他们也不好估计那几秒究竟有多少请求,他们老板不懂这些
|
|
22
@serco 我比较熟悉php python 实测根本达不到,现在考虑用golang, 抢购业务不复杂,页面很简单
|
|
blaboyNov 13, 2014 via Android
23
搞一个排队程序。哈哈哈。
|
|
msg7086Nov 13, 2014
24
@zaishanfeng 小米那请求量,营业额都能上亿了,只用一台服务器这不搞笑么……
服务器要是挂了那可是上亿损失啊。 |
|
25
@msg7086 打个比方而已 他们销售额不多,利润也很低,纯粹为了推广。我现在打算让他们加服务器,不知道加多少合适?
|
|
26
楼主没有高并发开发经验,跪求指点!
|
|
shawngaoNov 13, 2014
27
@zaishanfeng Golang我测过,没数据库的话我的Macmini能跑1W6这样子,所以一定要用redis之类的,或者逻辑不复杂的话直接加载到内存。
|
|
wzxjohnNov 13, 2014
28
|
|
msg7086Nov 13, 2014
29
@zaishanfeng 建议还是先分析一下具体的需求再定。
首先是要确定瞬间并发2万还是每秒并发2万还是每分钟并发2万。这差别大了去了。 然后他并发的是什么东西?静态网页还是购物车?多少东西可以缓存?什么东西是一定要hit到你app stack上的? 最后你记得跟他们老板说一下带宽的问题。每秒2万请求,1个请求50K,已经跑满万兆网卡了,放在机房里光带宽费就要超过5位数咯。 |
|
30
如果页面加上cdn的话,本机需要多少带宽才扛得住,每个页面大概100k,cdn不知道有没有带宽限制
|
|
msg7086Nov 13, 2014
31
@zaishanfeng 100KB × 20kPV = 2GB
如果是20kPV/min的话就是267Mbps,半个千兆就行。 如果是20kPV/s的话就是2GB/s就是跑满2块万兆网卡,或者20多块千兆网卡。 如果是并发20kPV的话,假定是0.1s执行速度那就是20GB/s,你需要20块万兆网卡和一层楼的带宽量,服务器数十台,外加各种交换机数十台,成本可参考12306。 |
|
rrfengNov 13, 2014
32
nginx
return 204 2 万没问题妥妥的 |
|
33
@shawngao 逻辑不复杂 就一个登录 一个预定 一个结果页 , 都可以放在内存里。
现在就按一分钟并发两万,前十秒并发1万,瞬间并发2000算吧。 带宽需要多少,加cdn。服务器要加几台。 如果卡住了,什么样的应对措施比较好?是很前两天联通抢购流量包一样来个服务器忙,还是什么都不做,让他慢慢等? |
|
34
@msg7086 。。。。
|
|
35
alert('服务器繁忙,请稍后再试');
|
|
icqdanyNov 13, 2014
36
Gearman
|
|
m_zNov 13, 2014
37
不愿意买,去租阿
|
|
38
@m_z 是租 我没说清楚
|
|
loadingNov 13, 2014
39
知道AWS吗?刚开始就是用来支撑圣诞节的!
这临时需求,居然买永久性的服务器,有病! |
|
40
@loading 额 怪我没说清楚 这个肯定不会永久性的,是租,阿里云或者其他什么的
|
|
CupToolsNov 13, 2014
41
|
|
ipconfigerNov 13, 2014
42
这样子的连接数能满足不?node.js+redis
阿里云4核8G主机 cpu 20% mem 30% |
|
xoxoNov 13, 2014
43
别纸上谈兵了.
架构搞好 + 异步处理订单 + 大流量弹神兽验证码 感觉是最好的方案了 |
|
ComdexNov 13, 2014
44
golang想你所想
|
|
mhycyNov 13, 2014
45
@abelyao
某地方部门给我们一个X6550服务器上的虚拟机...8G内存......... 结果跑下来就30m带宽(他们说百兆接入,我们内网跑的数字,可以想象母机负载有多高) 要求做个类似于领导热线的在线留言板.... 满足峰值5W在线的需求.........(5W这个数字不用担心,因为公务员都得上线) |
|
jiongjiongerNov 13, 2014
48
2W并发,纯php、python显然不太现实了。除非你叫钱多多。
另外弱弱的问下,您说的是峰值2W还是平均2W?峰值2W,完全可以上验证码限制一下,还能过滤不少机器人和低端用户。平均2W,你这是比京东还屌的节奏啊 |
|
yangffNov 13, 2014 via Android
49
临时花几千块租个云用几天咯。
|
|
52
@jiongjionger 验证码不太好吧 我还没发现哪个抢购的还有验证码 峰值预计四五千
|
|
53
@mhycy 亲 你们是怎么对付员员们的?
|
|
mhycyNov 13, 2014
54
@zaishanfeng 作为乙方只能尽量满足对方需求....
最近几天做新项目兼容IE6..........囧 |
|
benjiamNov 13, 2014
55
瞬间2万吗? 还是很容易的。 可以在微博上搜我的文章 c1000k实践手册。 我那个框架 可以接收同时12万并发请求的瞬间接入, 不会有掉线。服务器是7年前的 4核心。所以应该没问题
|
|
cxe2vNov 13, 2014
56
@zaishanfeng 天猫的抢购都有验证码,谁说没有
|
|
zts1993Nov 13, 2014
59
随机数判断啊
不和条件直接返回false。 23333333333333333333333 |
|
benjiamNov 13, 2014
60
查 c1000k
|
|
clinoNov 13, 2014
61
@zaishanfeng 用python的话应该用gevent,twisted,tornado 才有可能吧
@benjiam 微博上搜到个 https://github.com/xiaojiaqi/C1000kPracticeGuide ,是这个吗? |
|
jiongjiongerNov 13, 2014
62
@zaishanfeng 天猫的不就有么,还有些虽然没验证码,但是抢的时候需要回答问题,和验证码一个性质,都是为了防止峰值和机器人
|