阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档( 二 )


第5章分布式架构Varnish;Varnish是一款高性能且开源的反向代理服务器和HTTP加速器 , 主要通过缓存来实现Web访问加速 。 它基于内存进行缓存 , 支持精确缓存时效 , 性能高效 。 其VCL配置管理比较灵活 , 支持后端服务器负载和健康检查 , 内部实现了负载均衡轮询调用服务器 。
本章重点内容如下:

  • Varnish工作原理
  • Varnish源码编译安装
  • Varnish配置
  • Varnish核心指令
  • Varnish缓存
  • Varnish处理策略
  • Varnish健康检查
  • Varnish优化
  • Varnish高可用

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档文章插图
第6章分布式架构Tomcat;Tomcat是一个免费的开放源代码的Web应用服务器 , 主要应用于中小型系统 , 内部具有Servlet和JSP规范 , 且较轻量级 , 深受广大开发者喜爱和使用 , 目前较流行 。 实际上Tomcat部分应用是Apache服务器的扩展 , 作为一个与Apache独立的进程单独运行 。
本章重点内容如下:
  • Tomcat原理
  • Tomcat生命周期
  • Tomcat源码编译安装
  • Tomcat目录结构
  • Tomcat加载过程
  • Tomcat安全
  • Tomcat集群
  • JVM
  • Tomcat性能调优

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档文章插图
第7章分布式架构高并发;大量请求可能同时或者在极短时间内到达服务端 , 此时每个请求都需要服务端耗费资源进行处理并做出相应反馈 。 能同时运行的线程数、网络连接数、CPU运算、I/O、内存是有限的 , 所以服务端能同时处理的请求数也是有限的 , 高并发本质就是解决资源的有限性问题 。
假设系统在线人数是20万 , 并不意味系统并发用户是20万 , 可能存在10万用户同时在首页查看静态文章 , 并未对服务器发送请求 , 所以高并发数是根据系统真实的用户数发送请求 , 并需要服务端消耗资源进行处理 。 如服务端只能开启100个线程 , 恰好1个线程处理1个请求需要耗时1s , 那么服务端1s内只能处理100个请求 , 多余请求则无法处理 。
高并发涉及相关常用的指标有吞吐量(TPS)、每秒查询率(QPS)、响应时间、并发用户数等 。
1)TPS(QPS):单位时间内处理的请求数量 , 计算公式为并发数/平均响应时间 。
2)响应时间:系统对请求做出响应的时间 , 一般取平均响应时间 。
3)并发用户数:同时承载正常使用系统功能的用户数量 。 例如一个即时聊天系统 , 同时在线量一定程度上代表了系统的并发用户数 。
本章重点内容如下:
  • 高并发使用场景
  • 高并发难点
  • 高并发之缓存
  • 高并发之消息队列高并发优化
  • 高并发经典案例

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档文章插图
第8章分布式架构事务;主要介绍普通事务与分布式事务的差异性 , 以及对分布式事务的多种处理方式 , 本章会通过多个案例并结合代码进行分析 。
主动方应用可以异步发送消息至被动方应用 , 提高应用处理效率 , 消息中间件可以解耦主动方和被动方的强耦合性 , 同时引入消息中间件MQ 。 由于MQ有着独特的高并发、高吞吐能力 , 能够缓冲消息、灵活调节控制消息处理的效率 , 大大提高了双方系统的并发量 。
本章重点内容如下:
  • 分布式事务介绍
  • 分布式事务概论
  • 分布式事务应用场景
  • 分布式事务难点
  • 分布式事务解决方案
  • 分布式事务案例讲解

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档文章插图
第9章分布式架构MySQL;MySQL是一种关系数据库 , 由瑞典MySQL AB公司开发 , 目前属于Oracle 。 MySQL在之前因开源的原因在Web应用方面使用非常广泛 , 同时也因为体积小、速度快、使用成本低 , 尤其是开放源码这一特点 , 深受大中小型企业的喜爱 , MySQL采用标准化的SQL语言帮助用户更好地管理数据库系统 。
本章重点内容如下:
  • MySQL运行原理
  • MySQL编译启动
  • MySQL事务
  • MySQL存储引擎
  • MySQL之SQL操作
  • MySQL索引
  • MySQL备份
  • MySQL难点
  • MySQL性能优化
  • MySQL集群

阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档文章插图
第10章分布式架构高可用;高可用是指系统经过专门的设计 , 可以减少停工时间 , 保持其服务的高度可用性 。 可用性包含两个维度:计算机服务可用性平均时间和计算机服务可维护性平均时间 。 计算机服务可用性平均时间指系统平均能够正常运行多长时间会发生一次故障 , 系统的可用性越高 , 平均无故障时间越长 。 计算机服务可维护性平均时间指系统发生故障后处理和重新恢复正常运行平均花费的时间 , 系统的可维护性越好 , 平均维修时间越短 。 因此 , 计算机的可用性定义为系统保持正常运行时间的占比 , 可见 , 高可用是系统的重要目标 。