Java高并发的常见应对方案
一、关于并发我们说的高并发是什么?
在互联网时代,高并发,通常是指,在某个时间点,有很多个访问同时到来。
高并发,通常关心的系统指标与业务指标?
-
QPS:每秒钟查询量,广义的,通常指指每秒请求数
-
响应时间:从请求发出到收到响应花费的时间,例如:系统处理一个HTTP请求需要100ms,这个100ms就是系统的响应时间
-
带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小
-
PV:综合浏览量(Page View),即页面浏览量或者点击量,通常关注在24小时内访问的页面数量,即“日PV”
-
UV:独立访问(UniQue Visitor),即去重后的访问用户数,通常关注在24小时内访问的用户,即“日UV”
二、关于三种应对大并发的常见优化方案
【数据库缓存】
为什么是要使用缓存?
缓存数据是为了让客户端很少甚至不访问数据库,减少磁盘IO,提高并发量,提高应用数据的响应速度。
【CDN加速】
什么是CDN?
CDN的全称是Content Delivery Network,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离等综合信息将用户的请求重新导向离用户最近的服务节点上。
使用CDN的优势?
CDN的本质是内存缓存,就近访问,它提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量。
同时,减少远程访问的带宽,分担网络流量,减轻原站点WEB服务器负载。
【服务器的集群化,以及负载均衡】
什么是七层负载均衡?
七层负载均衡,是基于http协议等应用信息的负载均衡,最常用的就是nginx,它能够自动剔除工作不正常的后端服务器,上传文件使用异步模式,支持多种分配策略,可以分配权重,分配方式灵活。
内置策略:IP Hash、加权轮询
扩展策略:fair策略、通用hash、一致性hash
什么是加权轮询策略?
首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器,即体现了加权权重,又体现了轮询。
三、新年礼物
2018年刚开始,送给各位热爱编程的小伙伴一个福利,免费在线知识分享,不定期JAVA、缓存redis、高并发解决方案、自研MVC框架、百万数据量索引优化等分享。