大型网站架构1--演化

1. 特点
特点 Challenge
高并发,大流量 , 高可用 分布式应用,需保证不宕机,提供稳定服务,安全
海量数据 需要大量服务器,分布式存储,计算
网络情况复杂 需要解决全球各地,国内各运营商网络的差异和时延安全环境恶劣
需求变更快,发布频繁 需自动化代码管理,测试,部署,发布

网站渐进式发展,业务驱动技术 。


2. 架构演变历程

大致分为以下6步:

  1. 物理分离webserver、数据库和文件
  2. 增加缓存
  3. 使用应用服务器集群
  4. 使用数据库集群
  5. 反向代理+CDN加速响应
  6. 拆分业务+廉价存储+统一的数据访问模块

step 1:物理分离webserver、数据库和文件

1 物力隔离.png

step 2:增加缓存
Motivation
a.访问数据库的操作太多,数据库连接资源紧张激烈,又不能开太多,否则数据库机器压力会很大。
b.二八定律,80%的业务集中访问20%的数据。
缓存分类
缓存在应用服务器本地缓存 VS 远程分布式缓存
缓存内容
a. 采用 squid 等类似的机制来将系统中相对静态的页面(例如一两天才会有更新的页面)进行缓存
b. 采用ESI来做动态页面中相对静态的片段部分的缓存。
c. 重复获取的数据信息缓存,如用户信息等

2 增加缓存.png

step 3: 使用应用服务器集群
** Motivation
a.提高可用性,避免单台宕机
b.webServer已经成为性能瓶颈
c.提高可扩展性,所以不采取获得更强服务器策略
** 挑战

![Uploading webserver集群_348402.png . . .]
a. 如何让访问分配到这两台机器上,考虑方案负载均衡(Apache自带的负载均衡方案,或LVS这类的软件负载均衡方案)
b. 如何保持状态信息的同步,例如用户session等。考虑的方案写入数据库、写入存储、cookie或同步session信息等机制等;

3 增加webServer+负载均衡.png

step 4: 使用数据集群

方式 Motivation challenge
分库,分表 a.数据库连接的资源竞争非常激烈,确无法进行分布式式部署 b.表中数据越来越多,增删改查的开销也会越来越大 a. 事务造成的性能问题 b.跨库跨表的join问题 c.额外的数据管理负担和数据运算压力
主从热备,读写分离 a. 缓存没有命中的情况下,数据库负载成为瓶颈 b.主从热备是因为需要一个简单的协议保证“一致性” a. 主从一致性 b. 对应用保持透明性
分布式缓存,分布式数据库,分布式文件系统 a. 多备份分担压力 b.避免单点问题 ,更倾向于选择分表分库 数据分布和查找协议,数据一致性问题。

辅助增加模块:数据库访问管理模块,原因:需要通用的框架来实现分库分表的数据访问

4 数据集群.png

step 5: 反向代理+CDN加速响应
Motivation:访问延迟和用户流失率成正比。
相同点:a,基本原理都是缓存,目的都是把数据尽早返回给用户,并且减轻后端服务器压力。

区别
CDN:从距离自己最近的网络提供商机房获取数据。
反向代理:部署在数据中心机房,用户请求到达之后首先安防服务的是反向代理服务器,如果命中,直接返回。

5. 反向代理+CDN加速响应.png

step 6: 拆分业务+廉价存储+统一的数据访问模块
(1) 业务拆分
Motivation:应用场景复杂,server压力大,因此分为治之。 模块与模块之间的通信方式:超链接+消息队列+访问同一个数据存储系统(最常见)
分治的原则:提取可复用业务,拆分松耦合的业务
challenge
a:需要提供一个高性能、稳定的通信框架,并且需要支持多种不同的通信和远程调用方式;
b:需要进行业务的整理和系统依赖关系的控制等;
c:如何运维(依赖管理、运行状况管理、错误追踪、调优、监控和报警等)好这个庞大的分布式应用。

(2) 廉价存储
BigTable:分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库
NoSQL:关系型数据面临的挑战,a:事务导致其在分布式系统中性能很低。b: 联表,需要在不同服务器中收集数据,效率低,相反实践证明,冗余带来的收益高于成本。性能:B树更新操作性能不如LSM树
(3)统一的数据访问模块

6 拆分业务+廉价存储+统一的数据访问模块.png

References

[1] http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html
[2] 大型网站技术架构: 核心原理与案例分析[M]. 电子工业出版社, 2013.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容