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