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