何谓大型网站 大型网站系统特点: ps:符合这些要求的所谓大型网站真的很少,可遇而不可求也。...说到大型网站,就要先理一下大型网站的特点:高并发,大流量,高可用,海量数据等,本文根据《大型网站技术架构》一书整理如下: 初始阶段的网站架构 初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,ssm-demo...使用分布式文件系统和分布式数据库系统 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。...使用NoSQL和搜索引擎 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。...业务拆分 大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。 具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。
Via: http://blog.jobbole.com/84433/ 前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓...,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。...实践部分会抽取一些技术做实践,将方法、解决问题过程分享出来。 本文将讲述大型网站中一个重要的要素,性能。 什么是性能 有人说性能就是访问速度快慢,这是最直观的说法,也是用户的真实体验。...了解了这个原理我们来看怎么提高数据传输的速度,首先用户的上传、下载速度我们是无法决定的,我们能决定的是网站服务器的上传、下载速度,所以我们可以做的是适当的增加服务器带宽(带宽是很贵的,盲目的增加只会增加不必要成本...存储优化 大型网站中海量的数据读写对磁盘造成很大压力,系统最大的瓶颈还是在磁盘的读写。可以考虑使用磁盘阵列、分布式储存来改善存储的性能。
作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验,对新技术有浓厚的兴趣 。...大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。...很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中式应用架构,再演变成时下的分布式应用架构,随着网站用户规模的扩大,架构也在不断演进。...当前支撑大型网站的几大核心技术,分布式、服务化、虚拟化,其中分布式解决的是规模化带来的问题,所谓的规模化即包括数据规模越来越大,访问量越来越高,也包括开发团队规模越来越大,工程代码规模越来越大。...大型网站的另外一个核心技术就是资源的虚拟化,从实体机到Xen、KVM再到基于LXC的轻量级虚拟化方案,再到Docker,技术的更新换代使得资源的利用率越来越高,集群的运维、部署和管理越来越方便。
一、大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 二、大型网站架构目标...扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块。 敏捷性:随需应变,快速响应; ? 三、大型网站架构模式 ?...前端优化:网站业务逻辑之前的部分; 浏览器优化:减少Http请求数,使用浏览器缓存,启用压缩,Css Js位置,Js异步,减少Cookie传输; CDN加速,反向代理; 应用层优化:处理网站业务的服务器...),NOSQL等; 五、高可用架构 大型网站应该在任何时候都可以正常访问。...因为大型网站的复杂性,分布式,廉价服务器,开源数据库,操作系统等特点。要保证高可用是很困难的,也就是说网站的故障是不可避免的。 如何提高可用性,就是需要迫切解决的问题。
网站都是从小网站一步一步发展为大型网站的,而这之中的挑战主要来自于庞大的用户、安全环境恶劣、高并发的访问和海量的数据,任何简单的业务处理,一旦需要处理数以 P 计的数据和面对数以亿计的用户时,问题就会变的很棘手...下面我们就来说说这个演变过程: 初始阶段 大型网站都是由小型网站演变而来的,网站架构也一样 小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样: ?...网站的访问一样遵循二八定律:80% 的业务访问集中在 20% 的数据上面 因此我们要对这一小部分的数据进行缓存来减轻数据库的访问压力,以提高整个网站的数据访问速度,改善数据库的读写性能 网站的缓存可以分为两种...对于大型网站而言,无论多么强大的服务器,都满足不了持续增长的业务需求,更高效的方式就是增加服务器来分担压力 对于网站架构而言,如果增添一台新的服务器可以改善负载压力,那么就可以使用同样的方式来应对源源不断的业务需求...使用搜索引擎和nosql 业务拆分 对于大型网站,我们可以分而治之,把整个网站的业务分为不同的模块,比如大型的交易购物完整可以分为首页、店铺、订单、买家等,分别交给不同的业务团队来负责 同时我们将一个网站根据模块划分拆分成多个应用
,有些主要是从运维和基础架构的角度去分析的(堆机器,做集群),太关注技术细节实现,普通的开发人员基本看不太懂。...本文上篇将主要介绍大型网站基础架构的扩展,下篇则重点从应用程序的角度去介绍网站架构的扩展和演变。 草根时期,快速开发网站并上线。...有一定的业务量和用户规模了,想提升网站速度,于是,缓存出场了。 市场反响还不错,用户量每天在增长,数据库疯狂读写,逐渐发现一台服务器快撑不住了。于是,决定把DB和APP做分离。...Java领域用的较多的是Lucene、Solr等,而php领域用的比较多的是sphinx/coreseek。 到目前为止,一个能够承载日均百万级访问量的中型网站架构基本介绍完了。...这样,传说中的SOA的价值就得到体现了。 应用、服务之间还是会出现一些依赖问题,这时候,高吞吐量的解耦利器出现了 最后,还介绍一个大型互联网公司都用的绝技--分库分表。
早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。...使用 CDN,将网站静态内容分发至离用户最近的网络服务商机房,使用户通过最短访问路径获取数据。...警报系统 自动优雅降级 用户行为日志采集(服务器端和客户端) 服务器性能监控 监控数据采集 监控管理 3、伸缩性 大型网站需要面对大量用户的高并发访问和存储海量数据,不可能只用一台服务器就处理全部用户请求...网站通过集群的方式将多台服务器组成一个整体共同提供服务。所谓伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。...5、网站的安全架构 XSS 攻击和 SQL 注入攻击是构成网站应用攻击最主要的两种手段,此外还包括 CSRF,Session 劫持等手段。
下面就说说网站的架构演化过程吧。 1、初始阶段的网站架构 初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。 ?...3、使用缓存改善网站性能 毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。 ?...7、使用分布式文件系统和分布式数据库系统任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 分布式数据库是将网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。...8、使用NoSQL和搜索引擎 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。 ?...9、业务拆分 大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将网站业务拆分成不同的产品线。 具体到技术上,也会根据产品线花费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。
对于大部分前端同学来说,后台服务或者整个网站架构是个黑盒,前端工程师所看到所接触的业务只是冰山一角。...本文,从一个前端人的视角,以一张大型网站架构图开始,将这个潘多拉的魔盒打开……只是概述性的介绍,提纲式的分析讲解。 来自李智慧老师《大型网站技术架构-核心原理与案例分析》第一章的图示。 ?...,将请求分发到最少连接的服务器上; 源地址散列:根据请求来源的IP进行Hash计算,对应到某台应用服务器,这样,来自同一个IP的请求总会被同一台应用服务器处理; 4....本地缓存和应用服务共享内存,所以,它的数量不应该太多,适合存储读取最频繁且不易变动的数据。 远程缓存部署在专门的服务器上,可以使一台也可以是多台。...;并将不同业务的数据部署在不同的物理服务器上。
本文为《大型网站技术架构 核心原理与案例分析》读书笔记 大型网站架构演化 1 大型网站软件的特点 1.1 高并发,大流量 1.2 海量数据 存储及管理海量数据,需要大量服务器 1.3 高可用: 7...* 24 小时服务 1.4 用户分布广泛,网络环境复杂 1.5 安全环境恶劣 大型网站几乎每天都被黑客攻击 1.6 需求快速变更,发布频繁 1.7 渐进式发展 2 大型网站架构演化过程 2.1 单台服务器...因而,需要更大的硬盘 ④ 优点 提上各个服务器并发访问能力,改善存储空间 ⑤ 挑战 数据库访问压力增大,导致访问延迟 2.3 数据缓存 启用数据缓存的目的是,改善网站性能 网站访问遵循二八原则:80%...,单台应用服务器处理请求的能力有限,成为网站性能的瓶颈 2.4 应用服务器集群 ① 集群的优势 集群的应用,旨在改善网站并发高的问题,能有效改善网站的并发处理能力。...2.9 业务拆分 由于大型网站业务复杂,通过将整站的业务拆分成不同的产品达到分而治之的目的。
什么是大型网站? 有时候要下个定义挺难的,那么就从具体来说吧。博主曾经在京东工作过,大家都知道京东是个大型网站,这点应该没有异议。那它有哪些特点呢?...到这里,我们会发现,不论是我们的应用服务器,还是文件、缓存服务器,都是单点的,如果挂了的话,对我们的网站将是灾难性的,因此,又走向了集群的方式: ?...需要重点注意的是,主从之间需要数据同步。 到这里,就结束了么?不是的,大型网站随着业务越来越多,越来越复杂,数据量也很大,如果采用上面的架构,显然一旦db扛不住了,那就over了。...到这里,其实我们的网站,就处于一个微服务的阶段了。由于用户的一些请求,需要到达多个业务系统来完成,所以这里又出现分布式事务的问题。...小结 到这里,我们可以看到大型网站,并非一蹴而就,而是逐步演变、迭代升级的。朋友们,下篇见
此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。...一、大型网站系统特点 (1)高并发、大流量:PV量巨大 (2)高可用:7*24小时不间断服务 (3)海量数据:文件数目分分钟xxTB (4)用户分布广泛,网络情况复杂:网络运营商 (...5)安全环境恶劣:黑客的攻击 (6)需求快速变更,发布频繁:快速适应市场,满足用户需求 (7)渐进式发展:慢慢地运营出大型网站 二、大型网站架构演化过程 (1)初始阶段网站架构:一台Server...三、大型网站架构演化价值观 (1)核心价值:随网站所需灵活应对 大型网站不是从无到有一步就搭建好一个大型网站,而是能够伴随小型网站业务的渐进发展,慢慢地演化成一个大型网站。...(2)驱动力量:网站的业务发展—业务成就了技术,事业成就了人,而不是相反 四、大型网站架构设计的误区 (1)一味追随大公司的解决方案 (2)为了技术而技术->常见问题 (3)企图用技术解决所有问题
此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。 一、分层 最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责。...二、分割 分割是在纵向方面对软件进行切分->将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,有助于软件开发和维护,还便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。...①CDN:内容分发网络,缓存网站的一些静态资源; ? ②反向代理:部署在网站的前端,最先访问到的就是反向代理服务器; ? ...网站应用中,缓存除了可以加快数据访问速度,还可以减轻后端应用和数据存储的负载压力。...八、自动化 在无人值守的情况下,网站可以正常运行,一切都可以自动化是网站的理想状态。目前大型网站的自动化架构设计主要集中在发布运维方面。
此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。 一、性能—响应时间决定用户 (1)浏览器端: ①浏览器缓存; ②使用页面压缩; ? ...,缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题。...全靠9来撑腰:几乎所有网站都承诺7*24小时可用,但事实上都不可能完全实现,总会有一些故障时间。那么,去除这些故障时间就是网站的总可用时间。...换算成网站的可用性指标,以此衡量网站的可用性,例如某些知名网站可用性达到99.99%。 (2)哪些手段提高可用性? ...保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取; (2)衡量标准:针对现存和潜在的攻击窃密手段,是否有可靠的应对策略; 本章思维导图 ?
有些企业想做大型的门户网站,这类型的网站对服务器有着极高的需求。下面就给大家分享一下大型门户网站建设服务器的选购。...大型门户网站建设服务器怎么选 大型门户网站建设服务器的选购主要看三点:安全性、防御能力以及访问速度。...由此可见,以上三点都是大型门户网站选购服务器的重点。...大型门户网站怎么搭建 想要搭建大型门户网站,首先就要做好网站的框架,分析用户群体的习惯,将门户网站的功能做到最精细化,方便用户访问点击的时候也要知道用户的需求是什么。...总的来说,想要搭建一个完善的大型门户网站,服务器的配置一定不能低。
今天这篇文章,主要围绕着如何从多个方面来进行“高可用的网站架构”展开,网站页面能够完整呈现在最终用户面前,需要经过很多个环节,任何一个环节除了问题,都可能导致网站页面不可访问。...一般为了将网站的可用性指标转换成对应的责任度量下放到个人或者组织,我们一般使用“故障分”来对网站的单位时间故障进行加权计算,进而将责任分担下放到个人,加入其年度的绩效考核中。...这样的做的目的是为了让集群内的所有服务器对等,在负载均衡调度请求时可以无差别对待。而用户的状态信息我们会用专门的方式来进行管理。...同时对于大型网站的软件发布,我们可以采用“灰度发布”的方式,即一段时间内只发布线上集群中的一部分机器,待观察一段时间没有问题后,再逐渐发布集群内的其他机器。...相关阅读: 大型网站技术架构,初入探秘(一) 大型网站技术架构,网站的高性能架构(二)
今天这篇文章,主要围绕着如何从多个方面来进行“高性能网站架构”展开,性能优化小到一行代码的重构,大到服务器集群的重新架构。怎样通过各项数据指标来监控网站的实时性能?...找出网站的性能“弱点”,并以此为目标进行迭代式的优化,才能逐渐将网站架构达到一个高性能的水平。 ? 一、网站性能测试 网站的性能指标,既可以是开发人员客观的性能分析数据,测试指标。...也可以是主观的终端用户体验感受。一般而言,我们用如下指一些标来衡定一个网站的性能水平:响应时间、并发数量、吞吐量、性能计数器。...三、应用服务器优化 应用服务器主要用来处理系统业务,是整个网站架构中的核心,也是最复杂变化最多的部分。常用的优化手段有:使用分布式缓存(网站优化第一定律:优先考虑使用缓存。...但对于大量数据的存储需求,基于 MapReduce 可以进行并发任务处理的 HDFS 可能更加合适) 明天继续说,大型网站技术架构,网站的高可用架构(三) 相关文章 【必知】大型网站技术架构,初入探秘(
大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。 大型网站系统的特点 高并发,大流量 需要面对高并发用户,大流量访问。...安全环境恶劣 由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击。...一般大型网站的产品每周都有新版本发布上线,中小型网站的发布更频繁,有时候一天会发布几十次。 渐进式发展 几乎所有的大型互联网网站都是从一个小网站开始,渐进地发展起来的。...---- 大型网站架构演化发展历程 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以 P 计的数据和面对数以亿计的用户,问题就会变得很棘手。...大型网站架构主要解决这类问题。 初始阶段的网站架构 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来。