大型网站技术架构-阅读笔记1

 第一章 大型网站核心要素

1.网站访问特点和现实世界的财富分配一样遵循二八定律:80%的访问业务集中在20%的数据上,这部分数据就是需要做缓存处理的。

2.创新的业务发展模式对网站架构逐步提出更高要求,才使得创新的网站架构得以发展成熟。是业务成就了技术,是事业成就了人,而不是相反。

3.不要企图使用技术解决所有问题,技术是用来解决业务问题的,而业务的问题,也可以通过业务的手段是解决。(12306的发展,就是走的这条道)

4.网站架构模式,每一个模式描述了一个在我们周围不断重复发生的问题及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必做重复的工作。正确使用模式可以更好的利用业界和前任的思想和实践,用更少的实践开发出更好的系统,使设计者的水平也达到更高的境界。但是模式受其适用的场景限制,对系统的要求和约束也很多,不恰当的适用模式只会画虎不成反类犬,不但没有解决原来的老问题,反而带来了更棘手的新问题。好的设计绝对不是模仿,不是生搬硬套某个模式,而是对问题深刻理解之上的创造与创新,即使是“微创新”,也是让人耳目一新的似曾相识。山寨与创新的最大区别不在于是否抄袭,是否模仿,而在于对问题和需求是否真正地理解与把握。

  • 分层
  • 分割
  • 分布式
  • 集群
  • 缓存
  • 异步
  • 冗余
  • 自动化
  • 安全

5.网站架构要素

  • 性能
  • 可用性
  • 伸缩性
  • 扩展性
  • 安全性

第二章 网站的高性能架构

1.网站性能测试指标:

  • 响应时间
  • 并发数
  • 吞吐量
  • 性能计数器

2.Web前端性能优化

2.1浏览器访问优化

  • 减少http请求
  • 使用浏览器缓存
  • 启用压缩
  • CSS放在页面最上面,javascript放在页面最下面
  • 减少cookie传输

2.2CSN加速

2.3反向代理

3.应用服务器性能优化

3.1分布式缓存

memcached是缓存的经典产品,应用程序通过一致性Hash等路由算法选择缓存服务器访问缓存数据。memcached通信模块基于libevent,主要是利用了其在长连接上的稳定性。

memcached采用LRU算法释放最近最久未被访问的数据占用空间。Time33算法。B+树。

3.2异步操作

使用mq实现

3.3使用集群

3.4代码优化

第三章 网站的高可用架构

1.负载均衡+集群

应用服务器集群的session管理

  • session复制,适用于集群规模较小的场景
  • session绑定,负载均衡服务器总是将来源于同一个IP的请求分发到同一台服务器
  • 利用cookie记录session,适用于session较少的情况,简单实用
  • session服务器,高可用,伸缩性,性能好,复杂,成本高

2.高可用的服务

  • 分级管理
  • 超时设置
  • 异步调用
  • 服务降级,一种随即拒绝服务的策略,有些网站用户自己不能访问,但是问下身边的人,却可以访问,自己再刷新页面,也可以访问了。这种策略可以确保一部分请求得以成功,避免要死大家一起死的悲剧。
  • 冥等性设计(名字很怪),需要保证服务的重复调用和一次调用产生的结果形同,比如转账操作。
原文地址:https://www.cnblogs.com/jiwuyf/p/5993123.html