• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
《大型网站技术架构:核心原理与案例分析》读书笔记二

第四章 瞬时响应:网站的高性能架构

网站性能是客观指标,也是主观感受;
网站性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量指标;
  • 不同视角下的网站性能:用户视角(优化手段:优化页面HTML样式、利用浏览器端的并发和异步特性、调整浏览器的缓存策略、使用CND服务、反向代理等);开发人员(关注响应延迟、系统吞吐量、并发处理能力、系统稳定性;优化手段:使用缓存加速数据读取、使用集群提高系统吞吐能力、使用异步消息加快请求响应以及削峰、代码优化);运维人员(关注基础设施性能和资源利用率,如网络运营商的带宽能力、服务器硬件配置、数据中心网络架构、服务器和网络带宽的资源利用率等,优化手段:建设优化骨干网、使用高性价比定制服务器、使用虚拟化技术优化资源利用率等)

  • 性能测试指标:开发人员的视角:响应时间(重复请求取均值)、并发数(系统能够同时处理的请求的数量)、吞吐量(单位时间内系统处理的请求数量;TPS:每秒事务数;HPS:每秒HTTP请求数;QPS:每秒查询数)、性能计数器(指标:System Load、对象与线程数、内存使用、CPU使用、磁盘与网络IO等)

  • 性能测试方法:性能测试、负载测试、压力测试、稳定性测试

  • 性能测试报告

  • 性能优化策略:性能分析进而性能优化

Web前端性能优化
  • 浏览器访问优化:减少HTTP请求(合并CSS,合并JS、合并图片);使用浏览器缓存(将CSS、JS、图标等静态文件缓存在浏览器中。更新静态资源时,采用批量更新的方法);启用压缩(在服务器端对文件进行压缩,在浏览器端对文件解压缩);CSS放在页面最上面,JS放在页面最下面;减少Cookie传输;

  • CDN加速,CDN可以最短路径返回响应;缓存静态资源;

  • 反向代理

应用服务器性能优化
  • 分布式缓存

  • 异步操作

  • 使用集群

  • 代码优化

存储性能优化
  • 机械硬盘vs.固态硬盘,机械硬盘快速顺序读写、慢速随机读写;连续访问(数据存储在连续的磁盘空间上),随机访问(数据存储在不连续的磁盘空间)

  • b+树vs.LSM树,为了改善数据访问特性,文件系统或者数据库系统通常会对数据排序后再存储,加快数据检索速度,

  • RAIDvs.HDFS

想要解决高并发的问题,肯定会导致低并发的时候有一定性能的影响。用户体验的快或是慢,可以通过技术手段改善,也可以通过优化交互体验改善。


 

第五章 万无一失:网站的高可用架构

一、网站可用性的度量与考核
  • 网站可用性度量

  • 网站可用性考核

二、高可用的网站架构
(1)高可用的应用
  • 通过负载均衡进行无状态服务的失效转移:不能管理好session

  • 应用服务器集群的Session管理:session服务器。分为无状态的应用服务器和有状态的Session服务器

(2)高可用的服务:服务器分级,重要的模块用好的处理快的服务器,超时设置,异步调用,服务降级等。
(3)高可用的数据
  • CAP原理

  • 数据备份

  • 失效转移

(4)高可用网站的软件质量保证

  • 网站发布

  • 自动化测试

  • 预发布验证

  • 代码控制

  • 自动化发布

  • 灰度发布

(5)网站运行监控

  • 监控数据采集

  • 监控管理


 

第六章 永无止境:网站的伸缩性架构

网站架构的伸缩性设计

  • 不同功能进行物理分离实现伸缩:比如流程上的不同部分,数据库、缓存、基础技术等

  • 单一功能通过集群规模实现伸缩

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

  • HTTP重定向负载均衡:优点是比较简单。缺点是浏览器需要两次请求服务器才能完成一次访问,性能较差

  • DNS域名解析负载均衡:大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段。

  • 反向代理负载均衡

  • IP负载均衡

  • 数据链路层负载均衡

  • 负载均衡算法:轮询,加权轮询,随机,最少连接,源地址散列。

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

  • Memcached分布式缓存集群的访问模型

  • Memcached分布式缓存集群的伸缩性挑战

  • 分布式缓存的一致性Hash算法

.数据存储服务器集群的伸缩性设计

  • 关系数据库集群的伸缩性设计

  • NoSQL数据库的伸缩性设计:HBase为可伸缩海量数据储存而设计,实现面向在线业务的实时数据访问延迟。

 

posted on 2022-05-23 16:31  戈瑾  阅读(37)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3