高并发系统:常见方案的技术实现概述

高并发系统:常见方案的技术实现概述

一、高并发

程序员口中经常说的高并发到底是什么?

在互联网时代,高并发,通常是指,在某个很短的时间点,有非常多的用户访问同时到来。

高并发,通常关心的系统指标与业务指标?

· QPS:每秒钟查询量,广义的,通常指指每秒请求数

· 响应时间:从请求发出到收到响应花费的时间,例如:系统处理一个HTTP请求需要100ms,这个100ms就是系统的响应时间

· 带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小

· PV:综合浏览量(Page View),即页面浏览量或者点击量,通常关注在24小时内访问的页面数量,即"日PV"

· UV:独立访问(UniQue Visitor),即去重后的访问用户数,通常关注在24小时内访问的用户,即"日UV"

二、常见技术方案

流量优化:

防盗链处理。

前端优化:

减少HTTP请求,合并css或js,添加异步请求,启用浏览器缓存和文压缩,CDN加速,建立独立图片服务器。

服务端优化:

面静态化,数据缓存,异步队列处理、并发处理。

数据库优化:

写分离,分库分表,分区操作,分布式(读/写)数据库。

web服务器优化:

负载均衡,nginx反向代理,7,4层LVS软件。

微服务

服务拆分。

三、简述三种高并发的技术方案

【数据缓存】

为什么是要使用缓存?

通常高并发的系统,最容易出现瓶颈和处理复杂度最高的就是数据库,所以通过缓存数据(Redis、MongoDB、Memcache)是为了让客户端很少甚至不访问数据库,减少磁盘IO,提高并发量,提高应用数据库的吞吐量,提升响应速度。

高并发系统:常见方案的技术实现概述

【CDN加速】

什么是CDN?

CDN的全称是Content Delivery Network,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离等综合信息将用户的请求重新导向离用户最近的服务节点上。

使用CDN的优势?

CDN的本质是内存缓存,就近访问,它提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量。

同时,减少远程访问的带宽,分担网络流量,减轻原站点WEB服务器负载。

CDN的实现:

BAT等都有提供CDN服务,可用LVS做4层负载均衡;可用nginx,Varnish,Squid,Apache TrafficServer做7层负载均衡和cache;使用squid反向代理,或者nginx等的反向代理

【服务器的集群化,以及负载均衡】

什么是七层负载均衡?

七层负载均衡,是基于http协议等应用信息的负载均衡,最常用的就是Nginx,它能够自动剔除工作不正常的后端服务器,上传文件使用异步模式,支持多种分配策略,可以分配权重,分配方式灵活。

内置策略:IP Hash、加权轮询

扩展策略:fair策略、通用hash、一致性hash

高并发系统:常见方案的技术实现概述

什么是加权轮询策略?

首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器,即体现了加权权重,又体现了轮询。


分享到:


相關文章: