一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致:
1.传输层
大量用户对系统请求后,将会造成网络带宽和Web服务器的I/O瓶颈。
2.计算层
接收大量用户请求进行计算,将会造成业务服务器和业务支撑服务器的瓶颈。
3.存储层
传输层和计算层将会产生大量的数据,数据量暴增,将会导致数据库和储存上的瓶颈。
针对以上将会造成的系统高并发瓶颈,我们需要采用不同的技术手段解决。
从总体上来看
1.首先需要解决网络带宽和Web请求的高并发,需要合理的加大服务器和带宽的投入,并且需要充分的利用系统中软件、硬件的缓存机制,将能缓存的内容都进行缓存存储,减少计算层和存储层的压力。
2.其次需要对业务服务器和业务支撑服务器进行合理的分层,并且采用并行计算和分布式算法对大量计算进行处理,并且在开发的过程中需要采用Java SDK中并发包(Concurrency)进行编码实现。
3.存储层需要采用分布式文件服务器和列式的存储服务器进行构建,支撑海量数据的存放和读取,并且还要对关系型数据进行深层次的配置参数优化。
4.我们还需要清楚的认识到,将来根据系统运行的状态以及平台中不同的业务场景循序渐进的进行调整和优化。
对于大型系统来说,采用的技术是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:将会使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。
但是除了这几个方面,还没法根本解决面临的高负载和高并发问题,所以需要将计算和负载的压力分载到每个计算机上,使用不同的服务器集群机组进行分布式和并行计算,面对所产生的压力,下面这张图清晰的描述了,我们对系统中不同的计算瓶颈采用的不同解决手段,如图所示:
以下描述是针对不同层面产生的计算压力所采用的计算策略,清单如下:
传输层
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
使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。
相关推荐
互联网企业常见海量数据问题集锦,搜集得不容易啊
海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行...
#资源达人分享计划#
大型网站应用之海量数据和高并发解决方案总结.docx
基于工业互联网的海量设备数据采集分析与研究应用.pdf
MySQL海量数据查询优化策略,方法。 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引...
海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化...
本书针对互联网应用的特点,分别从关系型数据库,新兴系统做出对比
包含各种不常见的海量数据处理算法和相应的数据结构。确实是一本好资料啊
海量数据分页解决方案,采用存储过程通用分页.
海量数据存储解决方案.pdf
高并发海量数据解决方案,高并发海量数据解决方案.
互联网企业海量数据处理面试笔试详解 互联网企业海量数据处理面试笔试详解 互联网企业海量数据处理面试笔试详解
数据量的问题是很多面试笔试中经常出现的问题,比如 baidu google 腾讯 这样的一些 涉及到海量数据的公司经常会问到。...本贴从解决这类问题的方法入手,开辟一系列专题来解决海量数据问题。拟包含 以下几个 方面。
从海量素剧中查找中位数,从海量数据中查找一个数,海量数据问题
一种基于云计算的海量数据分布式存储策略.pdf
海量数据 海量数据 海量数据
互联网海量数据存储及处理调研综述 给大家分享一下哈哈
这里提出了一种基于分布式计算技术进行管理和存储海量海洋科学数据方法,构建了海量海洋科学数据存储平台解决方案,采用Linux集群技术,设计开发一个基于Hadoop的海量数据存储平台.系统由五大模块组成,有系统管理模块、...
文档介绍了互联网海量数据存储及处理的调研,是我在做hadoop的时候在网上看到的。