
⼀直在说⾼并发,多少QPS才算⾼并发?
⾼并发的四个⾓度
只说并发不提⾼可⽤就是耍流氓。可以从四个⾓度讨论这个问题。
⾸先是⽆状态前端机器不⾜以承载请求流量,需要进⾏⽔平扩展,⼀般QPS是千级。然后是关系型数据库⽆法承载读取或写⼊峰值,需要数据库横向扩展或引⼊nosql,⼀般是千到万级。之后是单机nosql⽆法承载,需要nosql横向扩展,⼀般是⼗万到百万QPS。最后是难以单纯横向扩展nosql,⽐如微博就引⼊多级缓存架构,这种架构⼀般可以应对百万到千万对nosql的访问QPS。当然⾯向⽤户的接⼝请求⼀般到不了这个量级,QPS递增⼤多是由于读放⼤造成的压⼒,单也属于⾼并发架构考虑的范畴。
PV和QPS
⽐如微博每天1亿多pv的系统⼀般也就1500QPS,5000QPS峰值。
⽐如有⼈说:
2C4G机器单机⼀般1000QPS。
8C8G机器单机可承受7000QPS。
要多久才能处理完这些请求
⾸先需要明确两个基本点:
1、处理每个请求需要耗费时间,哪怕时间很短
2、服务资源是有限的,不能⼀次性处理全部请求
假定总并发请求数量为10000,每个请求的处理时间为t秒,服务器⼀次性可以处理的请求数量为n个,那么处理完所有的请求需要⽤时为T
T = (10000 / n ) * t
由此可知,如果⼀次性可以处理10000个请求,那么总耗时只需要t秒
写在后⾯
具体多少QPS跟业务强相关,只读接⼝读缓存,将压⼒给到缓存单机3000+没问题,写请求1000+也正常,也复杂些可能也就⼏百+QPS。
所以QPS和业务场景和设计相关性很⼤,⽐如可以通过浏览器本地缓存,⽤缓存做热点数据查询,写
事务MQ异步处理等⽅式提升QPS。
更多推荐
请求,处理,需要,缓存,架构,承载
发布评论