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

整本书分为很多章节,但是我只是简要说一下大概内容和总结的内容. 文末有本书的链接(我的QQ聊天链接) 我没有放在GitHub上,不过没关系啦,QQ传输的更快~~~
首先我把这本书拆分为十二个方面来描述
第一点 大型网站的架构系统的特点

现在我们熟悉的都是MVC的架构,什么是是MVC的架构?
就是web应用分为三层架构,每一层各司其职(貌似也不仅仅是web应用),现在大部分的网站(这里指的是大型网站,但是中小型的网站也已经实施分层的思想)都是使用这种思维和设计模式.但是这只是设计上的特点,还有其他特点,比如:

高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣需求快速变更,发布频繁 渐进式发展

以上的要素基本上就是大型网站的要点,

第二点 大型网站的架构演化发展历程

大型网站都是从小网站发展而来的

  1. 初始阶段 没有人访问 一台服务器就足够 上面拥有网站的所有架构和数据
  2. 发展阶段 随着业务的发展 一台服务器不能满足需要 这个时候是数据和应用分离
  3. 继续发展阶段 使用缓存改善网站的性能 降低服务器的压力
  4. 使用应用服务器集群处理高并发
  5. 数据库读写分离
  6. 反向代理和CND加速网站响应
  7. 使用分布式文件系统和分布式数据库
  8. 使用NoSQL和搜索引擎
  9. 业务拆分
  10. 分布式服务
第三点 大型网站的架构演化价值观

这个网站是做什么的?为什么做,怎么做?实现的方法以及企业文化等等都是可以是大型网站的演化价值观
也许有的网站是为了利益,有的是为了好玩,但是最终网站的走向和这些是分不开的

第四点 网站架构的误区

一味追求大企业的实践方案
这是非常不推崇的,因为那是别人的实践,对于他们的企业以及网站就是非常优秀的解决方案,但是对于我们自己的网站就一定好用,我们应该做的借鉴,而不是抄袭

为了技术而技术
怎么说的?杀鸡焉用宰牛刀,这句话完全诠释.我们要做的应该是刚刚好,资源不会不够或者浪费,

企图用技术解决所有问题
这里小猪童鞋要说,法律是技术,而案件就是问题,有时候法和情之间很难抉择,在这里也是一样的.
技术不是万能的,但是没有技术不行,有些应该是业务的架构,比如12306,此处不吐槽了.它的业务架构很复杂很复杂,比起来淘宝的双11来讲,淘宝的双十一抢购,二者各方都有专攻
淘宝是计算商品,而12306是计算路线,大家可以设想一下,我从A到Z,途径ABCD---XYZ,这个是一个完整的路途,12036是不是需要计算有没有这样的一个我不需要换座位的路线,如果有,直接给我,如有没有,就要开始计算,我到哪儿需要转车,而且在计算的过程中,又有很多人来买票退票,自然就很复杂,崩溃也就很正常.

第五点 大型网站的架构模式 (这个就字面意思 很好理解滴 本猪就不解释啦)
  1. 分层 MVC思想
  2. 分割
  3. 分布式
  4. 集群
  5. 缓存
  6. 异步
  7. 冗余
  8. 自动化
  9. 安全
第六点 大型网站核心架构要素(也是字面意思)

什么是架构:"最高层次的规划,难以改变的决定"

  1. 性能
  2. 可用性
    就是不能经常挂掉,就算挂点也能很快跑起来 这里有个4个9以上的指标 就是一年的99.99%的时间是可以正常使用的
  3. 伸缩性
    就是是否可以多台服务器构建集群,是否容易向集群中添加新的服务器或者去除不需要的服务器
  4. 扩展性
    在网站新增产品或者业务的时候,或是网站下架某个业务的时候,是否会对整体的架构有很大的影响,时候这个业务挂掉,也不会影响整体的使用
  5. 安全性
第七点 网站的高性能架构:瞬时响应
1. 网站的性能测试
1.1 不同视角下的网站性能

a. 用户视角
b. 开发人员视角
c. 运维人员视角

1.2 性能测试指标

a. 响应时间
b. 并发数
c. 吞吐量
d. 性能测试器

1.3 性能测试方法

a. 性能测试
b. 负载测试
c. 压力测试
d. 稳定性测试(最大负载点.系统崩溃点等)

1.4 性能测试报告
1.5 性能优化策略

a. 性能分析
b. 负载优化

2. Web前端性能优化

1.1 浏览器访问优化
a. 减少HTTP请求
b. 使用浏览器缓存
c. 启用压缩
d. CSS放在最上面 JavaScript放在最下面
e. 减少Cookie的传输
1.2 CDN加速
1.3 反响代理

3. 服务器性能优化
1.1 分布式缓存

a. 缓存的原理
b. 合理修改缓存
注意点:
频繁修改的数据
没有热点的访问
数据不一致和脏读
缓存可用性
缓存预热
缓存穿透
c. 分布式架构缓存
d. 一些缓存的"大哥" Redis / Memcached
Memcached的特点
简单的通信协议
丰富的客户端程序
高性能的网络通信
高效的内存管理
互不通信的服务器集群架构

1.2 异步操作
1.3 使用集群
1.4 代码优化

a. 多线程

  1. 将对象设计为无状态对象
  2. 使用局部对象
  3. 并发访问资源时候使用锁
    b. 资源复用
    c. 数据结构
    e. 垃圾回收
1.5存储性能优化

a. 机械硬盘 VS 固态硬盘
b. B+树 VS LSM树
c. RAID VS HDFS

第八点: 网站的高可用架构:万无一失
1.1 网站可用性的度量与考量

也就是4个9, 99.99%的时间可用 以及度量

分类 描述 权重
事故级故障 严重故障,网站整体不可用 100
A类故障 网站访问不顺畅或核心功能不可用 20
B类故障 非核心功能不可用.或核心功能少数用户不可用 5
C类故障 以上之外的故障 1

故障分=故障时间(分)x故障权重

1.2 高可用的网站架构

MVC / 集群等

1.3 高可用的应用

a. 通过负载均衡进行无状态服务的失效转移
b. 应用服务器集群的Session管理
1.session的复制
2.session的绑定
3.利用cookie记录session
4.session服务器

1.4 高可用的服务

a. 分级管理
b. 超时设置
c. 异步调用
d. 服务降级
e. 幂等性设计

1.5 高可用的数据

a. CAP原理
1.数据持久性
2.数据可访问性
3.数据一致性
3.1数据强一致
3.2.数据用户一致
3.3数据最终一致
b. 数据备份
c. 失效转移
1.失效确认
2.访问转移
3.数据恢复

1.6 高可用网站的软件质量保证

a. 网站发布
b. 自动化测试
c. 预发布测试
d. 代码控制
1.主干开发.分支发布
2.分支开发,主干发布
e. 自动化发布
f. 灰度发布

1.7 网站运行监控 (不允许没有监控的系统上线)

a. 监控数据采集
1.用户行为日志
1.1服务器端日志收集
1.2客户端浏览器日志收集 (JavaScript脚本)
b. 服务器性能监控
c. 运行数据报告
e. 监控管理
1.系统报警
2.失效转移
3.自动优雅降级

第九点 网站的伸缩性架构:永无止境
网站架构的伸缩性设计

1.不同功能进行物理分离实现伸缩
2.单一功能通过集群规模实现伸缩

应用服务器集群的伸缩性设计

1.HTTP重定向负载均衡
2.DNS域名解析负载均衡
3.反向代理负载均衡
4.IP负载均衡
5.数据链路层负载均衡
6.负载均衡算法
6.1轮询
6.2加权轮询
6.3随机
6.4最少链接
6.5源地址散列

分布式缓存集群的伸缩性设计

a. Memcached分布式缓存集群的访问类型
b. Memcached分布式缓存集群的伸缩挑战
c. 分布式缓存的一致性Hash算法
d.数据存储服务器集群的伸缩性设计
1.关系型数据库集群的伸缩性设计
2.NoSQL数据库的伸缩性设计

第十点 网站的可拓展架构:随需应变
关键词:拓展性 伸缩性
1. 构建可拓展的网站架构
2. 利用分布式消息队列降低系统的耦合性

a.事件驱动架构
b.分布式消息队列

3. 利用分布式服务打造可复用的业务平台

a.Web Service与企业级分布式服务
b.大型网站分布式服务的需求要点
1.负载均衡
2.失效转移
3.高效的远程通信
4.整合异构系统
5.对应用最少侵入
6.版本管理
7.实时监控
c.分布式服务框架设计
d.可拓展的数据结构
e.利用开发平台建设网站生态圈

第十一点 网站的安全架构:固若金汤
1.道高一尺魔高一丈的网站应用攻击与防御

a.XSS攻击
b.注入攻击
c.CSRF攻击
d.其他攻击和漏洞攻击
1.Rrror Code
2.HTML注释
3.文件上传
4.路径遍历
e.Web应用防火墙 ModeSecurity(开源) NEC的SiteShell(收费)
f.网站安全漏洞扫描

2.信息加密技术以及密钥安全管理

a.单向散列加密 (MD5 / SHA)
b.对称加密(DES / RC)
c.非对称加密(RSA)
d.密钥安全管理

3.信息过滤与反垃圾

a.文本匹配
b.分类算法
c.黑名单

4. 电子邮件商务风险控制

a.风险
1.账户风险
2.卖家风险
3.买家风险
4.交易风险
b.风控
1.规则引擎
2.统计模型

第十二点 国内外大型网站的架构之路

这里内容很多,我辽这儿了先.有空来补全(其实也不是很多,核心都在上面十一点啦)


华丽的分割线 balabala

到此,总结到了一个部分,这只是做一个简要的分析和总结,类似与目录的存在,终归需要明白的就是网站是一个生命,她有她的方方面面,她是一个完整的个体.页面是她的容颜,内容是她的内在美,受到攻击就是她生病了....伟大起于微澜
需要这本书的 可以找我要嗷 这是我的QQ会话链接 @我自己 有啥地方写的不好或者有误欢迎大家提出嗷.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容