出现高并发的几种问题

希望对各位有所帮助

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致:

1.传输层
大量用户对系统请求后,将会造成网络带宽和Web服务器的I/O瓶颈。

2.计算层
接收大量用户请求进行计算,将会造成业务服务器和业务支撑服务器的瓶颈。

3.存储层
传输层和计算层将会产生大量的数据,数据量暴增,将会导致数据库和储存上的瓶颈。

以下描述是针对不同层面产生的计算压力所采用的计算策略,清单如下:
传输层
1.CDN
    网络链路出口进行压力分载,通过CDN让用户访问最近的数据缓存。
2.智能双路
    针对电信、网通 不同的访问用户访问请求,对应用户访问请求进行服务器带宽的智能切换。
3.LVS
    对用户的请求进行压力分载,并且实现多种负载均衡的策略,也可以选择使用HA-Proxy实现。
4.HA-Proxy
   针对Web服务器进行方向代理,通过HA-Proxy将用户的请求分发到不同的Web服务器上。
5.Long-Polling
    在Web服务器上采用的一种策略,专门针对某个用户需要不断频繁的轮询访问。
6.Session2Cache
    将用户的会话进行集中处理,存放在中央式的缓存服务器当中,减少服务器之间的会话通信
 
计算层
1.MapReduce
   采用最经典的分布式算法对海量数据进行处理,将计算进行分载。
2.BSP
    BSP(Bulk Synchronous Parallel-大型同步模型)算法是基于MPI算法的基础进行演化,运用在系统中并行计算的部分。
3.Result Cache
    将计算的一部分结果进行缓存,缓解对存储层读取的请求。
4.Scatter/Gather
    中间通过一个服务器进行中转,将大量的请求分发给内部的服务器进行计算,类似前端的web反向代理。
 
存储层
1.读写分离
    由于系统的读大于写的频率,数据库架构采用了1主/多从,双主多从的策略,所以我们将会将读和写进行分离,并且将大量的读请求分散给多台不同的(Slave)服务器。
2.分区策略
    系统采用不同的时间段作为分区的主要策略,提高对数据的读写性能。
3.Sharding
    一台数据库将很快无法满足大量并发,需要使用库表散列,将数据库中的数据进行分散存储。
4.Column-Based
   使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。

转载于:https://my.oschina.net/u/3731321/blog/1576566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值