服务器大流量、高并发如何应对?
所谓服务器高流量并发,是指在同时或极短的时间内,有大量的请求到达服务器,每个请求都需要服务器消耗资源进行处理,并做出相应的反馈。常用的高并发处理思路和手段。从服务器的角度来看,高并发。服务器处理请求需要消耗服务器的资源,如可以同时打开的流程数、可以同时运行的线程数、网络连接数、cpu、I/O、内存等。由于服务端资源有限,服务端可以同时处理的请求也有限。高并发性问题的本质是资源有限。高并发带来的问题。服务器的处理和响应会越来越慢,甚至会丢弃一些请求不处理,更严重的会导致服务器崩溃。高并发处理的基本思路。1)从客户端看。尽量减少请求数量,如依靠客户端自身的缓存或处理能力。尽量减少服务器资源的不必要消耗,例如:重复使用某些资源,如连接池客户端处理的基本原则是:不访问服务器。2)从服务端看。增加资源供应,如:更大的网络带宽、更高配置的服务器、高性能的网络服务器和高性能的数据库。请求分流,如使用集群和分布式系统架构。应用优化,如:使用更高效的编程语言,优化处理业务逻辑的算法,优化访问数据库的SQL。基本原则:分而治之,提高单个请求的处理速度。高并发处理的基本手段。1)客户端发出请求的常用方法有:尽量利用浏览器的缓存功能,减少访问服务器,如js、css、图片等。压缩传输的功能可以考虑降低网络流量和提高传输速度。考虑使用异步请求,分批获取数据。2)前端接收客户端请求水平,常用手段有:动静分离,部分静态资源可直接从Nginx返回。根据不同的要求,分发到不同的后端进行处理,如负载平衡、业务拆分访问等。再加一层做多个Nginx的负载平衡,如:LVS、F5等。CDN服务也可以在前面使用。也可以缓存动态内容,尽量减少访问后端服务。3)在Web服务器层面,常见的手段有:使用最新的JVM并优化配置。优化Web服务器的配置,如调整内存数量、线程数量等。为实现负载平衡,提供多个可以提供相同服务的Web服务器。在Web服务器上仔细规划部署的应用规模。集群Web服务器。4)在Web应用层面,常手段有:静态动态内容。Java开发优化。优化处理业务逻辑的算法。缓存的合理高效利用。优化访问数据库的SQL,可以考虑使用存储过程等数据库的能力。合理使用多线程,加快业务处理。有些业务可以考虑内存数据库或纯内存处理。尽量避免远程调用、大量I/O等耗时操作。合理规划事务等比较耗资的操作。异步处理的合理使用。考虑采用预处理或预计算的方法来减少实时计算。尽量直接调用和处理内部系统之间的业务,减少WebService、工作流等。5)在数据库层面,常见的手段有:合理选择数据库的引擎,如Mysql的InoDB和MyISAM引擎。配置优化。可以考虑使用存储过程来处理复杂的数据逻辑。读写分离的数据库集群。合理设计数据库的表结构、索引等。分库、分表,减少单库、单表的数据量。

转载于天翼云,如有侵权,请联系删除,谢谢