`

大型互联网站解决高并发的常见策略

 
阅读更多

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由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
使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。
  • 大小: 64.5 KB
分享到:
评论

相关推荐

    Java系统的高并发解决方法详解

    但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。 上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张...

    大型网站应用之海量数据和高并发解决方案总结.docx

    ### 大型网站应用之海量数据和高并发解决方案 #### 一、网站应用背景 随着互联网的迅猛发展,用户数量激增,对于网站而言,如何高效处理海量数据及应对高并发访问成为了关键技术挑战之一。在初期阶段,一个简单的...

    大型高并发高负载网站的系统架构解决之道

    ### 大型高并发高负载网站的系统架构解决之道 #### 概述 在互联网的高速发展下,大型网站面临着前所未有的挑战,特别是高并发和高负载情况下的稳定性与响应速度。传统的静态网页模式已无法满足现代网站的需求,...

    第二讲-大型互联网高可用&高并发业务架构设计实践.pdf

    在互联网行业中,构建高可用和高并发的业务架构是一项至关重要的任务。这涉及到对系统设计原则的深刻理解和实践经验。海恩法则和墨菲定律在系统设计中起着指导作用,提醒我们在面对潜在问题时,必须保持警惕并深入...

    大型高并发高负载网站的系统架构

    总的来说,构建大型高并发高负载网站的系统架构需要综合考虑静态化、资源分离、数据库优化、缓存策略以及负载均衡等多个方面,通过这些技术手段,可以有效应对大规模用户访问和高并发挑战,确保网站的稳定性和性能。...

    大型网站系统构架-高并发高负载

    ### 大型网站系统构架-高并发高负载 随着互联网技术的发展,越来越多的企业和组织开始构建自己的在线平台,特别是大型网站,如门户站点等。这些网站通常面临着大量的用户访问和高并发请求的压力。为了应对这些问题...

    大型高并发高负载网站的系统架构解决之道.pdf

    在当今互联网时代,大型网站面临的挑战主要集中在如何处理海量用户访问和高并发请求。针对这一问题,本文作者基于丰富的实践经验,提出了几种有效的解决策略。 首先,**HTML静态化**是提高网站性能的基础。静态HTML...

    高并发场景杂谈.zip

    在IT行业中,高并发场景是许多大型互联网企业和云计算服务提供商所面临的重要挑战。"高并发场景杂谈.zip"这个压缩包文件集成了多种处理高并发问题的策略和技术,旨在为开发者提供解决高并发问题的思路和实践案例。...

    高并发分布式解决方案

    在IT行业中,高并发分布式解决方案是构建大规模、高性能系统的关键技术。随着互联网业务的飞速发展,处理亿级甚至更高流量的网站已经成为常态,而如何有效地应对这些流量,确保系统的稳定性和可扩展性,就成为了IT...

    多线程 高并发

    在互联网服务中,高并发能力至关重要,因为它直接影响到系统的可扩展性和用户体验。实现高并发的方式多种多样,包括但不限于: 1. **负载均衡**:通过分配不同的请求到不同的服务器,减少单个服务器的压力。 2. **...

    互联网高并发架构设计.docx

    总结来说,互联网高并发架构设计涵盖了服务器集群、负载均衡、数据库优化、缓存策略、并发测试、消息队列等多个方面。设计过程中需要不断迭代和优化,以应对日益增长的并发挑战,保证系统的稳定性和用户体验。通过...

    资料_高并发_数据库高并发集群笔记_

    高并发是指在短时间内系统能同时处理大量用户请求的能力,它是互联网应用面临的常见挑战。随着用户量的增长,单台服务器往往无法承受所有的请求,因此需要通过优化和扩展来提高系统的并发处理能力。 2. 数据库高...

    千万级高并发架构

    在互联网技术领域中,高并发架构是保障大型网站服务可用性和响应速度的关键技术。千万级高并发架构主要指能够处理高达千万次的用户请求并保证其流畅运行的系统架构。这类架构通常需要面对海量用户的数据请求,同时...

    高并发秒杀系统

    总结,这个项目展示了如何运用SSM框架和前端技术构建一个高并发的秒杀系统,涉及了从后端架构设计、数据库交互、高并发处理策略到前端用户体验等多个层面的技术要点。通过学习和实践,开发者可以提升在大型项目中的...

    数据库高并发

    在IT行业中,数据库高并发是系统设计中的关键挑战,特别是在大型互联网企业和实时数据处理场景下。高并发是指在短时间内,大量用户同时访问或操作数据库,这需要数据库系统具备高效的处理能力,以保证服务的稳定性和...

    高并发解决方案-提升高并发量服务器性能解决思路.docx

    本文旨在探讨针对高并发场景的一系列解决方案和技术策略,包括但不限于静态化处理、图片服务器分离、数据库集群与库表散列以及缓存技术的应用等。 #### HTML静态化 在网站设计中,最高效、资源消耗最小的方式莫...

    下载高并发web架构pdf文档与视频

    在IT行业中,高并发Web架构是现代互联网应用的关键组成部分,特别是在大型互联网公司和高流量网站中,处理大量并发用户请求的能力至关重要。本资源提供了一套关于“下载高并发web架构”的PDF文档和视频,旨在帮助...

Global site tag (gtag.js) - Google Analytics