首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大型网站系统架构演化之路

点击标题下「大数据文摘」可快捷关注 作者:飘扬的红领巾 摘自:http://www.cnblogs.com/leefreeman/p/3993449.html 前言 一个成熟的大型网站(如淘宝、天猫、腾讯等...尽管如此我们也可以从这些不同的网站背景下,找出其中共用的技术,这些技术和手段广泛运用在大型网站系统的架构中,下面就通过介绍大型网站系统的演化过程,来认识这些技术和手段。...三、利用缓存改善网站性能 在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%...七、使用分布式文件系统 用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求,这时就需要分布式文件系统的支撑。常用的分布式文件系统有GFS、HDFS、TFS。 ?...小结 大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。

75850

大型网站技术架构(二)--大型网站架构演化

何谓大型网站 大型网站系统特点: ps:符合这些要求的所谓大型网站真的很少,可遇而不可求也。...说到大型网站,就要先理一下大型网站的特点:高并发,大流量,高可用,海量数据等,本文根据《大型网站技术架构》一书整理如下: 初始阶段的网站架构 初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,ssm-demo...使用分布式文件系统和分布式数据库系统 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。...使用NoSQL和搜索引擎 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。...应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统

2.1K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大型网站系统与 Java 中间件实践

    第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。...面对故障独立性 处理单点故障,如果不能把单点变为集群,则需要给单点做好备份,降低单点故障影响范围 事务的挑战:2PC、最终一致、BASE、CAP、Paxos等 第二章 大型网站及其架构演进过程 大型网站...分布式文件系统,解决小文件和大文件的存储问题 分布式key-value系统,提供高性能的半结构化支持 分布式数据库提供一个支持大数据、高并发的数据库系统 读写分离后,数据库又遇到瓶颈 尽管读写分离以及分布式存储系统...如果是小型系统直接使用JMS是一个经济的选择,在大型系统中不适合使用JMS。...1、发送消息给消息中间件 2、消息中间件入库消息 3、消息中间件返回结果 4、业务操作 5、发送业务操作结果给消息中间件 6、更改存储中消息状态 …… 注:后面内容略,不方便摘要 参考:《大型网站系统

    1.9K70

    漫谈大型网站架构

    作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验,对新技术有浓厚的兴趣 。...大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。...很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中式应用架构,再演变成时下的分布式应用架构,随着网站用户规模的扩大,架构也在不断演进。...当前支撑大型网站的几大核心技术,分布式、服务化、虚拟化,其中分布式解决的是规模化带来的问题,所谓的规模化即包括数据规模越来越大,访问量越来越高,也包括开发团队规模越来越大,工程代码规模越来越大。...大型网站的另外一个核心技术就是资源的虚拟化,从实体机到Xen、KVM再到基于LXC的轻量级虚拟化方案,再到Docker,技术的更新换代使得资源的利用率越来越高,集群的运维、部署和管理越来越方便。

    98820

    大型网站架构总结

    一、大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 二、大型网站架构目标...三、大型网站架构模式 ? 分层:一般可分为,应用层,服务层,数据层,管理层,分析层; 分割:一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。...多线程,资源复用(对象池,线程池等),良好的数据结构,JVM调优,单例,Cache等; 存储优化:缓存,固态硬盘,光纤传输,优化读写,磁盘冗余,分布式存储(HDFS),NOSQL等; 五、高可用架构 大型网站应该在任何时候都可以正常访问...因为大型网站的复杂性,分布式,廉价服务器,开源数据库,操作系统等特点。要保证高可用是很困难的,也就是说网站的故障是不可避免的。 如何提高可用性,就是需要迫切解决的问题。...设置防火墙策略,建立DDOS防御系统,使用攻击检测系统,进行 子网隔离等手段。 应用系统安全:在程序开发时,对已知常用问题,使用正确的方式,在代码层面解决掉。

    1.6K60

    大型网站架构演化

    本文为《大型网站技术架构 核心原理与案例分析》读书笔记 大型网站架构演化 1 大型网站软件的特点 1.1 高并发,大流量 1.2 海量数据 存储及管理海量数据,需要大量服务器 1.3 高可用: 7...* 24 小时服务 1.4 用户分布广泛,网络环境复杂 1.5 安全环境恶劣 大型网站几乎每天都被黑客攻击 1.6 需求快速变更,发布频繁 1.7 渐进式发展 2 大型网站架构演化过程 2.1 单台服务器...区别在于,反向代理部署在网站的中心机房, CDN 服务部署在网络提供商机房 ② 优点 通过加速用户访问速度和减轻后端服务器压力,达到尽快返回给用户数据的目的 2.7 分布式文件系统和分布式数据库系统 分布式系统解决的核心问题是...:任何强大的单一服务器无法满足业务持续增长的业务需求,所以需要使用分布式数据库系统和分布式文件系统 分布式数据库是数据库拆分的最终手段,只有在单表数据库规模非常庞大时才使用分布式数据库系统 通常,网站更常用的技术手段是...2.9 业务拆分 由于大型网站业务复杂,通过将整站的业务拆分成不同的产品达到分而治之的目的。

    94310

    大型网站架构演化

    7、使用分布式文件系统和分布式数据库系统任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 分布式数据库是将网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。...8、使用NoSQL和搜索引擎 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。 ?...9、业务拆分 大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将网站业务拆分成不同的产品线。 具体到技术上,也会根据产品线花费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。...应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。 ?...10、分布式服务 由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。 ?

    1K10

    大型网站技术架构

    早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。...但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分、数据拆分、应用解耦)**,向分布式系统转型,涉及到以下环节改造。...分库分表,引入分布式数据框架 引入NoSQL,支持海量数据存储 借助elastics search等开源搜索引擎 异步化,系统解耦。...: 响应时间:指应用执行一个操作需要的时间 并发数:指系统能够同时处理请求的数目 QPS:指单位时间内系统处理的请求量 系统性能计数器:描述服务器或者操作系统性能的一些数据指标 性能优化,根据网站分层架构...警报系统 自动优雅降级 用户行为日志采集(服务器端和客户端) 服务器性能监控 监控数据采集 监控管理 3、伸缩性 大型网站需要面对大量用户的高并发访问和存储海量数据,不可能只用一台服务器就处理全部用户请求

    1.5K60

    大型网站技术架构

    早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。...但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分、数据拆分、应用解耦)**,向分布式系统转型,涉及到以下环节改造。...分库分表,引入分布式数据框架 引入NoSQL,支持海量数据存储 借助elastics search等开源搜索引擎 异步化,系统解耦。...: 响应时间:指应用执行一个操作需要的时间 并发数:指系统能够同时处理请求的数目 QPS:指单位时间内系统处理的请求量 系统性能计数器:描述服务器或者操作系统性能的一些数据指标 性能优化,根据网站分层架构...警报系统 自动优雅降级 用户行为日志采集(服务器端和客户端) 服务器性能监控 监控数据采集 监控管理 3、伸缩性 大型网站需要面对大量用户的高并发访问和存储海量数据,不可能只用一台服务器就处理全部用户请求

    1.2K30

    图解大型网站架构

    对于大部分前端同学来说,后台服务或者整个网站架构是个黑盒,前端工程师所看到所接触的业务只是冰山一角。...本文,从一个前端人的视角,以一张大型网站架构图开始,将这个潘多拉的魔盒打开……只是概述性的介绍,提纲式的分析讲解。 来自李智慧老师《大型网站技术架构-核心原理与案例分析》第一章的图示。 ?...根据业务属性进行垂直切分,比如:产品子系统,购物子系统,支付子系统,评论子系统,客服子系统,接口子系统(对接如进销存,短信等外部系统)。 根据业务子系统进行等级定义,分为核心系统和非核心系统。...比如:核心系统:产品子系统,购物子系统,支付子系统;非核心:评论子系统,客服子系统,接口子系统。...业务经过拆分,每个子系统可由专门的团队和部门负责,解决模块之间耦合以及扩展性问题;每个子系统单独部署,避免集中部署导致一个应用挂了,全部应用不可用的问题。 下一步,如何组织子业务完成某一具体任务?

    1.4K50

    大型网站技术架构!

    网站都是从小网站一步一步发展为大型网站的,而这之中的挑战主要来自于庞大的用户、安全环境恶劣、高并发的访问和海量的数据,任何简单的业务处理,一旦需要处理数以 P 计的数据和面对数以亿计的用户时,问题就会变的很棘手...下面我们就来说说这个演变过程: 初始阶段 大型网站都是由小型网站演变而来的,网站架构也一样 小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样: ?...对于大型网站而言,无论多么强大的服务器,都满足不了持续增长的业务需求,更高效的方式就是增加服务器来分担压力 对于网站架构而言,如果增添一台新的服务器可以改善负载压力,那么就可以使用同样的方式来应对源源不断的业务需求...,对数据库系统和文件系统进行分布式管理 分布式数据库 是网站数据库拆分的最后手段,一般我们可以采取业务分库,根据不同业务的数据库部署在不同的数据库服务器上 ?...使用搜索引擎和nosql 业务拆分 对于大型网站,我们可以分而治之,把整个网站的业务分为不同的模块,比如大型的交易购物完整可以分为首页、店铺、订单、买家等,分别交给不同的业务团队来负责 同时我们将一个网站根据模块划分拆分成多个应用

    1.8K80

    漫谈大型网站架构

    作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验,对新技术有浓厚的兴趣 。...大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。...很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中式应用架构,再演变成时下的分布式应用架构,随着网站用户规模的扩大,架构也在不断演进。...当前支撑大型网站的几大核心技术,分布式、服务化、虚拟化,其中分布式解决的是规模化带来的问题,所谓的规模化即包括数据规模越来越大,访问量越来越高,也包括开发团队规模越来越大,工程代码规模越来越大。...大型网站的另外一个核心技术就是资源的虚拟化,从实体机到Xen、KVM再到基于LXC的轻量级虚拟化方案,再到Docker,技术的更新换代使得资源的利用率越来越高,集群的运维、部署和管理越来越方便。

    80810

    大型网站架构演变

    什么是大型网站? 有时候要下个定义挺难的,那么就从具体来说吧。博主曾经在京东工作过,大家都知道京东是个大型网站,这点应该没有异议。那它有哪些特点呢?...不是的,大型网站随着业务越来越多,越来越复杂,数据量也很大,如果采用上面的架构,显然一旦db扛不住了,那就over了。于是,又需要对db进行分库分表操作了。 ?...让我们继续,如果我们的网站是一个电商类的,那么会有商品业务、订单业务、库存业务、物流业务等等。那我们应该将这些业务独立拆分成产品线,成为一个个独立的子系统(or 服务),交给不同团队进行维护。 ?...到这里,其实我们的网站,就处于一个微服务的阶段了。由于用户的一些请求,需要到达多个业务系统来完成,所以这里又出现分布式事务的问题。...小结 到这里,我们可以看到大型网站,并非一蹴而就,而是逐步演变、迭代升级的。朋友们,下篇见

    1K40

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

    大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。...但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。...,还能具备频道管理、权限管 理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。...6、负载均衡 负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。...对于大型网站来说,前面提到的每个方法可能都会被同时使用到,我这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大

    1.4K61

    大型网站技术架构》读书笔记一:大型网站架构演化

    一、大型网站系统特点   (1)高并发、大流量:PV量巨大   (2)高可用:7*24小时不间断服务   (3)海量数据:文件数目分分钟xxTB   (4)用户分布广泛,网络情况复杂:网络运营商   (...5)安全环境恶劣:黑客的攻击   (6)需求快速变更,发布频繁:快速适应市场,满足用户需求   (7)渐进式发展:慢慢地运营出大型网站 二、大型网站架构演化过程   (1)初始阶段网站架构:一台Server...(4)使用应用服务器集群改善网站并发处理能力:集群—解决高并发、海量数据问题的常用手段,实现系统的可伸缩性。...(7)使用分布式文件系统和分布式数据库系统:随着网站业务的发展,两台DB服务器依然不能满足需求,文件系统也一样。 ?   ...三、大型网站架构演化价值观   (1)核心价值:随网站所需灵活应对   大型网站不是从无到有一步就搭建好一个大型网站,而是能够伴随小型网站业务的渐进发展,慢慢地演化成一个大型网站

    90810

    大型网站背后的高性能系统架构设计

    性能计数器 - 系统负载、对象与线程数、内存使用、CPU 使用、磁盘与网络 IO 等。这些指标也是系统监控的重要参数。 1.2. 性能测试方法 性能测试 负载测试 压力测试 稳定性测试 1.3....反向代理 传统代理服务器位于浏览器一侧,代理浏览器将 HTTP 请求发送到互联网上,而反向代理服务器位于网站机房一侧,代理网站服务器接收 HTTP 请求。 ?...反向代理还可以实现负载均衡,通过负载均衡构建的集群可以提高系统总体处理能力。 因为所有请求都必须先经过反向代理服务器,所以可以屏蔽一些攻击 IP,达到保护网站安全的作用。 3....分布式缓存 网站性能优化第一定律:优先考虑使用缓存优化性能。 缓存原理 缓存指将数据存储在相对较高访问速度的存储介质中,以供系统处理。...RAID 和 HDFS HDFS(分布式文件系统) 更被大型网站所青睐。它可以配合 MapReduce 并发计算任务框架进行大数据处理,可以在整个集群上并发访问所有磁盘,无需 RAID 支持。

    1.2K30

    大型网站技术架构》读书笔记二:大型网站架构模式

    此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。 一、分层   最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责。...网站一般分为三个层次:应用层、服务层和数据层,其具体结构如下图所示: image.png   通过分层,一个庞大系统切分成不同部分,便于分工合作和维护。   ...当某台服务器发生故障,负载均衡设备或者系统的失效转移机制将请求转发到集群中的其他服务器上,提高系统的可用性,即所谓的HA(高可用性)。 ?   ...异步消息队列可以提高系统可用性、加快网站响应速度,消除并发访问高峰。...八、自动化   在无人值守的情况下,网站可以正常运行,一切都可以自动化是网站的理想状态。目前大型网站的自动化架构设计主要集中在发布运维方面。

    79120

    大型网站架构技术模型

    另一方面便于不同模块分布式部署,提高网站的并发能力与功能处理能力。 例如一个大型网站将购物,论坛,搜索,广告分割成不同的应用。由独立的团队负责部署在不同的机器上。...1.3.3.3 分布式数据与存储 大型网站要处理以P为单位的海量数据,单台机器就算进行了磁盘扩容的情况下也存储不了那么多大的容量的时候就采用分布式存储,除了对传统数据库进行分布式部署外,还要对nosql...1.3.3.5分布式协同 1.3.3.6 分布式文件系统 1.3.3.7 分布式任务调度 1.4 集群 由于用户访问的集中,还需要将独立的服务器,集群化,多台服务器部署相同的应用构成一个集群,通过负载均衡策略对外提供服务...1.5.4 分布式缓存 大型网站的数据量非常庞大,即使只缓存一小部分,需要的内存空间也不是单机能承受的,所以除了本地缓存,还需要分布式缓存。将数据缓存在一个装门的分布式缓存集群中。...使用异步消息队列可以提高系统可用性,当消费者故障,生产者可以继续进行生产,数据可以堆积在消息队列中,等消费者恢复故障以后再回来对消息队列进行消费。

    1K30

    大型网站的自强之路

    1、大型网站的自强之路 当年马云筹办阿里巴巴的时候并没有说我要做个大型网站,搞个双11,成交额做到千亿级别;马化腾也没有说以后我要做个通讯工具,让13亿乃至更多用户都成为我们的用户……我们现如今看到的各个大型网站或产品都是一步步踏踏实实走过来的...1.2、我们需要丰富网站的功能 随着一个单机网站的不断完善,用户的增长,我们不再也不能只是一个完成缴费或者完成选课的单一功能的网站应用。...我们需要从各个维度把这些应用分离开来,比如一个电商网站,我们有用户、商品和交易三个基本模块。...用户 用户注册 用户管理 商品 商品展示 商品管理 交易 订单系统 交易管理 随着应用的分块,数据库中表的划分也会相应变化。大概的结构图如下 ?...1.5、数据库扛不住了,读写分离 这个时候我们不能再把自己的应用网站成为小网站了,我们的数据量和访问量空前的增长以至于数据库有些hold不住了。

    76790
    领券