`
LD_21
  • 浏览: 129996 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

大型互联网站解决海量数据的常见策略

    博客分类:
  • web
阅读更多

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

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

    构建海量数据仓库解决方案

    海量数据仓库的特点包括巨大的数据量(TB甚至PB级别),大量并发用户,需要在大型服务器或分布式系统上运行,并支持互联网访问。这些特性带来了管理复杂性,如性能优化、数据安全和高可用性。常见的挑战包括ETL效率...

    mysql海量数据的存储和访问解决方案借鉴.pdf

    总结来说,解决MySQL海量数据存储和访问的策略主要包括数据切分(水平切分)、负载均衡、读写分离等,通过这些技术可以有效应对大数据场景下的性能挑战,保证系统的稳定性和扩展性。在实际应用中,需要根据业务需求...

    mysql海量数据的存储和访问解决方案归类.pdf

    总结,MySQL海量数据的存储和访问解决方案主要包括数据切分、负载均衡和读写分离,这些策略通过分布数据、优化访问路径和平衡负载,有效提升了系统的处理能力和稳定性。在实际应用中,需要根据业务特性和需求,选择...

    大型网络技术架构-李智慧

    10. **大数据处理**:面对海量数据,大数据处理技术如Hadoop、Spark等提供了有效解决方案。书中可能讲解如何利用这些工具进行数据处理和分析。 李智慧的这本书全面剖析了大型网站技术架构的方方面面,无论是对于...

    大数据之数据挖掘课程:海量数据集挖掘 13-大规模机器学习 共59页.pdf

    - **应用场景**:适用于对海量数据进行并行处理的任务,例如搜索引擎中的网页索引构建、用户行为分析等。 - **工作原理**:主要包括两个阶段——`Map` 和 `Reduce`。`Map` 阶段将输入数据分割成小块,并对这些小块...

    互联网金融背景下我国商业银行中间业务发展策略.pdf

    - 数据分析:商业银行可能会利用大数据分析技术,对海量交易数据进行挖掘,以便更好地理解客户需求、预测市场趋势、控制风险等。 - 行业数据:通过分析商业银行中间业务的行业数据,能够了解当前中间业务的发展状况...

    第5章数据仓库与数据挖掘的DSS.pptx

    总的来说,数据仓库与数据挖掘是现代决策支持系统的核心,它们帮助企业从海量数据中提取有价值的信息,驱动更明智的商业决策。通过构建和优化数据仓库,结合有效数据挖掘技术,企业可以提高运营效率,降低风险,并...

    大数据处理技术的总结与分析(20210920104123).pdf

    在大数据背景下,面对“海量数据+高并发+数据一致性+高可用性”的挑战,大型互联网公司如Google、Facebook、淘宝等,采取了定制化的解决方案。这些方案通常包括数据库分片、利用缓存提升内存效率、数据复制实现读写...

    数据挖掘在企业历史数据中的应用.pdf

    在互联网时代,企业拥有海量数据,数据挖掘技术的运用成为了企业数字化转型的关键。通过有效利用历史数据,企业不仅能优化现有业务,还可以发掘新的商业机会,实现数据驱动的创新和发展。因此,企业应积极探索和投资...

    大数据处理技术的总结与分析.docx

    例如,大型互联网公司如Google、Facebook和淘宝,会根据自身业务特点定制解决方案,常用策略包括数据库分片、利用缓存提升IO效率、实现读写分离、采用异步处理机制和避免分布式事务等。 阿里COR(Canal)就是一个...

    [高清]大型网站技术架构 核心原理与案例分析+李智慧.pdf

    这本书深入浅出地介绍了大型网站在应对高并发、大数据量、高可用性等挑战时所采用的技术策略和实践经验,是IT行业中尤其是互联网开发者和架构师的重要参考资料。 首先,书中详细讲解了网站架构的基础知识,包括软件...

    数据挖掘:概念与技术(韩家炜等)中文版

    随着互联网、物联网等技术的广泛应用,数据量呈指数级增长,而这些海量数据中蕴含着巨大的商业价值和社会价值。数据挖掘通过运用统计学、机器学习、人工智能等技术,能够帮助人们从数据中发现隐藏的模式、规律和趋势...

    互联网运营智慧

    微服务架构是一种流行的解决方案,它将大型应用拆分为小型、独立的服务,每个服务都可以独立部署和扩展,以适应不断变化的需求。 网站技术实战中,还会涉及数据库优化、缓存策略、异步处理和消息队列等技术。数据库...

    淘宝海量图片存储与CDN系统

    淘宝作为中国最大的电商平台,每天处理着数以亿计的图片数据。为了应对如此庞大的图片存储需求和快速的图片访问速度,淘宝...这是一套复杂而精细的系统,充分体现了大型互联网公司在面对大数据挑战时的技术创新能力。

    疯狂代码,大型网站架构系列

    《疯狂代码:大型网站架构系列》是一套深入探讨大规模网站架构设计的文档集,涵盖了从基础概念到高级策略的广泛内容。在这个系列中,我们将会深入理解大型网站背后的技术架构和设计思想,以应对高并发、大数据量以及...

    大型分布式网站架构设计与实践.带目录书签.完整版.zip

    这本书通过理论与实践相结合的方式,详细介绍了大型网站在面对海量数据和高并发访问时,如何进行架构设计和优化。 首先,分布式网站架构设计的核心目标是提高系统的可伸缩性、容错性和性能。为了实现这些目标,我们...

    大型分布式网站架构设计与实践.带目录书签.完整版.pdf

    2. **数据库分片**:面对海量数据,单机数据库难以胜任,于是采用数据库分片,将数据分布在多个数据库实例上,每个实例负责一部分数据。分片策略通常有范围分片、哈希分片等,需根据业务特性选择合适方案。 3. **...

    大型网站技术架构 核心原理与案例分析

    其次,**分布式数据库**和**数据缓存**是处理海量数据的关键。分布式数据库通过分割数据存储,提高了查询效率和系统的扩展性。而数据缓存如Redis或Memcached则用于存储热数据,减少对后端数据库的访问,进一步提升...

Global site tag (gtag.js) - Google Analytics