服务器高并发,高QPS之拙见
一般的互联网产品都会有并发或者高频查询(QPS)问题,今天共享一下我个人的拙见,欢迎讨论!
我个人遇到的问题首要有以下几点:
1、某些拳头活动(业务)拉新为确保超预期作用,遇到高并发问题
2、某些业务,C端用户对于B端的数据及时性需求很高,会遇到高QPS问题
假定程序环境为:Linux + java + nginx
针对第一点现在已知的较为友爱、简略的处理方案有:
1、服务器做负载均衡
2、nginx和java设置每秒接收请求数限定范围
3、服务器请求时间延伸
(2、3没有太大必要,在确保服务器稳定供给服务的一起会损失一定的用户体会)
4、调整业务,尽量剥离出来一部分业务数据缓存(也便是加Redis等缓存技术)
5、增加行为验证,比方滑块验证等
(不建议增加此功用,由于硬手段能够一定程度上缓解服务器压力,可是会用户体会会有较大折损)
针对第二点现在已知的较为友爱、简略的处理方案有:
1、拆分业务,运用较为稳定的缓存服务,可是频频查改缓存在确保服务的一起会加大服务器负荷
2、nginx和java设置每秒接收请求数限定范围
3、服务器请求时间延伸
上面是一些较为简略,对开发相对友爱的处理方案,从现在非同一跑道内的一二线产品来看,缓存技术应用足矣处理很大部分的并发问题,在产品前期足够用,可是中后期上限很显着,最显着的便是在产品长期存在高QPS的情况下,此种方式会引引起缓存溃散,进而引发磁盘I/O拉满,以下介绍几种架构级别的处理方案,我们能够讨论以下,有不足之处欢迎指正。
由于发展到一定程度之后,程序的功能瓶颈首要在数据库的 I/O 上,所以对于一些代码、设计上的优化(数据库主键,循环,死锁,业务,算法,单业务翻开数据库次数、等)这儿就不再赘述。
客服支持
微信咨询
售后