从服务端视角看高并发难题

简介: 服务端处理请求需要耗费服务端的资源,比如能同时开启的进程数、能同时运行的线程数、网络连接数、cpu、I/O、内存等等,由于服务端资源是有限的,那么服务端能同时处理的请求也是有限的。高并发问题的本质就是:资源的有限性

所谓服务器大流量高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。

3e16d6b79f516db1b924853889bb0de00a4c1432 

从服务端视角看高并发

服务端处理请求需要耗费服务端的资源,比如能同时开启的进程数、能同时运行的线程数、网络连接数、cpu、I/O、内存等等,由于服务端资源是有限的,那么服务端能同时处理的请求也是有限的。高并发问题的本质就是:资源的有限性

高并发带来的问题

服务端的处理和响应会越来越慢,甚至会丢弃部分请求不予处理,更严重的会导致服务端崩溃。

高并发处理的基本思路

1)从客户端看

尽量减少请求数量,比如:依靠客户端自身的缓存或处理能力

尽量减少对服务端资源的不必要耗费,比如:重复使用某些资源,如连接池客户端处理的基本原则就是:能不访问服务端就不要访问

2)从服务端看

增加资源供给,比如:更大的网络带宽,使用更高配置的服务器,使用高性能的Web服务器,使用高性能的数据库

请求分流,比如:使用集群,分布式的系统架构

应用优化,比如:使用更高效的编程语言,优化处理业务逻辑的算法,优化访问数据库的SQL

基本原则:分而治之,并提高单个请求的处理速度

高并发处理的基本手段

1)客户端发出请求层面,常见的手段有:

l  尽量利用浏览器的缓存功能,减少访问服务端,比如:js、css、图片等

l  可以考虑使用压缩传输的功能,减少网络流量,也会提高传输速度

l  考虑使用异步请求,分批获取数据

2)前端接收客户端请求层面,常见的手段有:

l  动静分离,部分静态资源可以直接从Nginx返回

l  按请求的不同,分发到不同的后端进行处理,比如:负载均衡、业务拆分访问等

l  前面再加上一层来做多个Nginx的负载均衡,比如:LVS、F5等

l  还可以在更前面使用CDN服务

l  还可以对动态内容进行缓存,尽量减少访问后端服务

3)Web服务器层面,常见的手段有:

l  使用最新的JVM,并进行配置优化

l  Web服务器进行配置优化,比如:调整内存数量、线程数量等

l  提供多个能提供相同服务的Web服务器,以实现负载均衡

l  仔细规划Web服务器上部署的应用规模

l  Web服务器进行集群

4)Web应用层面,常见的手段有:

l  动态内容静态化

l  Java开发优化

l  优化处理业务逻辑的算法

l  合理高效的利用缓存

l  优化访问数据库的Sql,可以考虑利用存储过程等数据库的能力

l  合理使用多线程,加快业务处理

l  部分业务可以考虑内存数据库,或者是进行纯内存处理

l  尽量避免远程调用、大量I/O等耗时的操作

l  合理规划事务等较为耗资源的操作

l  合理使用异步处理

l  对部分业务考虑采用预处理或者预计算的方式,减少实时计算量

l  内部系统间的业务尽量直接调用、直接处理,减少WebService、工作流等

 

相关文章
|
7月前
|
关系型数据库 MySQL 数据库连接
Python+SQLite数据库实现服务端高并发写入
Python中使用SQLite内存模式实现高并发写入:创建内存数据库连接,建立表格,通过多线程并发写入数据。虽然能避免数据竞争,但由于SQLite内存模式采用锁机制,可能在高并发时引发性能瓶颈。若需更高性能,可选择MySQL或PostgreSQL。
321 0
|
7月前
|
缓存 应用服务中间件 数据库
淘宝服务端高并发分布式架构演进之路
淘宝服务端高并发分布式架构演进之路
154 0
|
缓存 运维 负载均衡
淘宝服务端高并发分布式架构演进之路
淘宝服务端高并发分布式架构演进之路
153 0
|
存储 缓存 NoSQL
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性(上)
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性
234 0
|
存储 NoSQL 搜索推荐
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性(中)
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性
167 0
|
存储
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性(下)
闲鱼技术2022年度白皮书-服务端主题-闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性
135 0
|
缓存 运维 负载均衡
服务端高并发分布式架构演进之路
高并发分布式架构与淘宝14次架构演进
1350 5
服务端高并发分布式架构演进之路
|
缓存 运维 负载均衡
服务端高并发分布式架构演进之路(建议收藏)
服务端高并发分布式架构演进之路(建议收藏)
400 0
服务端高并发分布式架构演进之路(建议收藏)
|
存储
高并发服务端分布式系统设计概要(上)
原文出处:http://www.cnblogs.com/ccdev/p/3338412.html 又是快一年没写博客了,2013年也只剩尾巴,也不知道今年都忙了些什么。写这篇文章的目的,主要是把今年以来学习的一些东西积淀下来,同时作为之前文章《高性能分布式计算与存储系统设计概要》的补充与提升,然而本人水平非常有限,回头看之前写的文章也有许多不足,甚至是错误,希望同学们看到了
1676 0
|
4月前
|
监控 算法 Java
企业应用面临高并发等挑战,优化Java后台系统性能至关重要
随着互联网技术的发展,企业应用面临高并发等挑战,优化Java后台系统性能至关重要。本文提供三大技巧:1)优化JVM,如选用合适版本(如OpenJDK 11)、调整参数(如使用G1垃圾收集器)及监控性能;2)优化代码与算法,减少对象创建、合理使用集合及采用高效算法(如快速排序);3)数据库优化,包括索引、查询及分页策略改进,全面提升系统效能。
52 0