一 概述web
1.大型网站构架技术的核心价值是随着网站所需灵活应对算法
2.驱动大型网站技术发展的主要力量是网站的业务发展(同理,驱动我的技术提高的主要力量在于工做中接触此类工做的经验的积累)数据库
3.解决大型网站的问题,不能认死理,没有固定的解决方案,不能为了技术而技术,有时甚至改变下业务方的应用场景,也能解决问题(好比12306网站)。设计模式
二 架构浏览器
1.大型网站经常使用的几种架构模式:
1 分层
2 分割
3 分布式
4 集群
5 缓存
6 异步
7 冗余
8 自动化
9 安全缓存
PS.好的设计模式须要架构者深刻理解,并根据实际业务场景应用和微创新安全
2.五个核心要素:性能、可用性、伸缩性、扩展性、安全性性能优化
3.关于“性能”:服务器
3.1 用户视角的网站性能=开发人员视角的网站性能+运维人员视角的网站性能cookie
3.2 性能指标:响应时间、并发数、吞吐量(TPS\HPS\QPS)、性能计数器(服务器端查看)
3.3 性能测试方法:性能测试、负载测试、压力测试、稳定性测试
3.3 性能优化策略:1.性能分析(日志);2性能优化
3.3.1 web前段性能优化:1.浏览器访问优化;2.CDN加速;3反向代理
3.3.2 应用服务器性能育华:1.分布式缓存;2.异步操做;3.使用集群;4.代码优化
3.3.3 存储性能优化:1.机械硬盘VS固态硬盘;2.B+树 VS LSM树(算法、NoSQL产品);3.RAID VS HDFS (数据结构)
PS.网站性能优化定律:
1.优先考虑使用缓存优化性能
2.任何能够晚点作的事情都应该晚点作(技术要结合业务)
4.关于“可用性”
4.1 应用层主要处理网站应用的业务逻辑,所以有时也称做业务逻辑层,应用的一个显著特色是应用的“无状态性”。
4.2 session管理的几种手段:session复制、session绑定、利用cookie记录session、session服务器
4.3 高可用服务策略:分级管理、超时设置、异步调用、服务降级、幂等性设计
4.4 高可用的数据:CAP原理,为了保证数据的高可用,网站一般会牺牲另外一个也很重要的指标:数据一致性
4.5 数据备份:关系数据库热备机制——Master-Slave同步机制
4.5 失效转移:失效确认、访问转移、数据恢复
4.6 软件质量保证:网站发布自动脚本、自动化测试、预发布验证、代码控制
4.7 监控数据采集:用户行为日志收集、服务器性能监控、运行数据报告
4.7 监控管理:系统报警、失效转移、自动优雅降级
5.关于“伸缩性”
5.1 不一样功能进行物理分离实现伸缩,单一功能经过集群规模实现伸缩(当一头牛拉不动的时候,不要去寻找一头更强壮的牛,而是用二头牛来拉车)
5.2 应用服务器集群的伸缩性设计——负载均衡服务器:HTTP重定向负载均衡、DNS域名解析负载均衡、反向代理负载均衡、IP负载均衡、数据链路负载均衡(LVS)
5.3 分布式缓存的伸缩性设计——分布式缓存的一致性HASH算法
5.4 数据存储服务器集群的伸缩性设计——关系数据库(Cobar)、NoSQL数据库(HBase)
PS.高手定律:这个世界只有遇不到的问题,没有解决不了的问题,高手之因此成为高手,是由于他们遇到了常人很难遇到的问题
救世主定律:遇到问题,分析问题,最后总能解决问题。若是期望一个外面的救世主来解决本身问题,每每只有彼此的抱怨和伤害,因此这个定律也是“没有救世主定律”
6.关于“扩展性”
6.1 构建可扩展的网站构架(须要经验丰富的架构师根据实际状况来定)
6.2 利用分布式消息队列下降系统耦合性(生产消费者模式)
6.3 利用分布式服务打造可复用的业务平台
6.4 可扩展的数据结构(NoSQL的列族)
7.关于“安全性”
7.1 网站应用攻击与防护:XSS、注入攻击、CSRF攻击、web应用防火墙、网站安全漏洞扫描
7.2 信息加密技术及秘钥安全管理:单向散列加密、对称加密、非对称加密、秘钥安全管理
7.3 信息过滤与反垃圾:文本匹配、分类算法、黑名单
7.4 电子商务风险控制:低风险——交易系统;高风险——人工审核
三 案例
1.淘宝
1.1 不一样时期选用不一样的技术构架(免费-付费-免费+自主开发)
1.2 小脚船大鞋,不但跑不快,还可能会摔跤
1.3 淘宝主要开源系统:Tair、TFS、OceanBase、DDL
2.维基百科
2.1 CDN服务是核心
2.2 前段服务占业务80%,所以应用服务端和储存压力很小
3.Doris构架分析
3.1 分布式系统的故障分类及不一样处理方法:瞬时故障、临时故障、永久故障
4.秒杀系统
4.1 秒杀系统对应策略:
4.1.1 秒杀系统独立部署
4.1.2 秒杀商品页面静态化
4.1.3 租借秒杀活动网络宽带
4.1.4 动态生成随机下单页面URL
4.2 用JS控制秒杀页面按钮的点亮
4.3 控制用户下单入口,应用层发现下单用户超过10个,直接返回活动结束页面
4.4 大型网站典型故障案例分析
五 架构师
5.1 领导的真谛:寻找一个值得共同奋斗的目标,营造一个让你们都能最大限度发挥自我价值的工做氛围
5.2 提出问题的Tips:
5.2.1 把“个人问题”表达成“咱们的问题”
5.2.2 给上司提封闭式问题,给下属提开发式问题
5.2.3 指出问题而不是批评人
5.2.4 用赞同的方式提出问题
5.3 漫画网站构架师:各类职责和分类
PS.到此,这本《大型网站技术架构》一书,已经看完和笔记,整体感受下来,这本书较《大型网站系统与Java中间件实践》一书更浅显易懂,各章节分类明晰,又结合不少案例。虽然里面关于技术细节方面的东西讲的没那么多,更多的是关于构架方便的东西。可是整本书读下来不会让人有很深涩难懂的感受,整本书从思想的角度解析了网站系统的构成,更多的是教你们怎么面对实际工做中可能遇到的问题,感受十分受用,每一章均可以在之后工做中用的到。