《大型网站技术架构:核心原理与案例分析》笔记03
网站可用性度量:
网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点
网站年度可用性指标=(1-网站不可用时间/年度总时间)*100%
网站可用性考核:
故障分=故障时间(分钟)*故障权重
高可用的网站架构:
大型网站的分层架构及物理服务器的分布式不是使得位于不用层次的服务器具有不同的可用性特点。关闭服务或者服务器宕机时产生的影响也不相同,高可用的解决方案也差 异甚大。
高可用的应用:
负载均衡
业务量和数据量较高的情况下,当单台服务器不足以承担所有的负载压力时,通过负载均衡手段,将流量和数据分摊到一个集群组成的多台服务器上,以提高整体的负载处理 能力。
Session服务器
高可用的服务:分级管理,超时设置,异步调用,服务降级,幂等性设计
高可用的数据:
CAP原理:一个提供数据服务的存储系统无法同时满足数据一致性,数据可用性,分区耐受性这三个条件。
C:数据一致性,所有应用程序都能访问得到相同的数据。
A:数据可用性,任何时候,任何应用程序都可以读写访问
P:分区耐受性,系统可以跨网络分区线性伸缩
高可用网站的软件质量保证:
网站发布->自动化测试->预发布验证->代码控制->自动化发布->灰度发布
对公司而言,可用性关系网站的生死存亡。对个人而言,可用性关系到自己的绩效升迁。工程师对架构做了许多优化、对代码做了很多重构,对性能、扩展性、伸缩性做了很 多改善,但别人未必能直观地感受到,也许你的直接领导都不知道你做的这些意义何在。但如果你负责的产品出了重大故障,CEO就会知道你的名字。失误总是先求生存,然 后求发展。保证网站可用,万无一失,任重而道远。
网站的伸缩性架构:当一头牛拉不动车的时候,不要去寻找更强壮的牛,二是用两头牛来拉车。
负载均衡:HTTP重定向负载均衡,DNS域名解析负载均衡,反向代理负载均衡,IP负载均衡,数据链路层负载均衡(修改mac地址),负载均衡算法(轮询,加权轮询,随 机,最少连接,源地址散列)
计算机的任何问题都可以通过增加一个虚拟层来解决。
高手定律:这个世界只有遇不到的问题,没有解决不了的问题。高手之所以成为高手,是因为他们遇到了常人很难遇到的问题,并解决了。所以百度有很多广告搜索的高手, 淘宝有很多海量数据高手,QQ有很多高并发业务的高手,原因大抵如此。一个100万用户的网站,不会遇到1亿用户同时在线的问题;一个拥有100万件商品网站的工程师,可 能无法理解一个拥有10亿件商品网站的架构。
救世主定律:遇到问题,分析问题,最后总能解决问题。如果遇到问题就急匆匆地从外面挖一个高手,然后指望高手如探囊取物般轻松搞定,最后怕是只有彼此抱怨和伤害。 许多问题只是看起来一样,具体问题总是要具体对待的,没有银弹,没有救世主。所以这个定律准确地说应该是“没有救世主定律”。