每天净瞎搞

关注:AI/CS/数学/自我提升等

0%

《分布式技术原理与算法解析》课前必读 学习笔记

开篇词 | 四纵四横,带你透彻理解分布式技术

  • Q:分布式技术涉及内容
    • 按照业务的架构层次栈,自底向上按照资源、通信、数据与计算的维度,有4个技术层次:分布式资源池化、分布式通信、分布式数据存储于管理、分布式计算。即“在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务”
    • 四条纵向技术是,在分布式环境下,无论是资源、通信、数据还是计算,都需要去解决协同、调度、追踪高可用,还有部署问题

01 | 分布式缘何而起:从单兵,到游击队,到集团军

  • Q:分布式的三个演进模式是什么?
    • 单机模式:所有业务和数据均部署到同一台机器上。这种模式的好处是功能、代码和数据集中,便于维护、管理和执行,但计算效率是瓶颈。即单机模式性能受限,存在单点失效的问题
    • 数据并行(数据分布式)模式:对数据进行拆分,利用多台计算机并行执行多个相同任务,通过在相同的时间内完成多个相同任务,从而缩短所有任务的总体执行时间,但对提升单个任务的执行性能及降低时延无效
    • 任务并行(任务分布式):单任务拆分成多个子任务,多个子任务并行执行,只要一个复杂任务重的任意子任务的执行时间变短了,那么这个业务的整体执行时间也就变短了。该模式在提高性能、扩展性、可维护性等的同事,也带来了设计上的复杂性问题,比如复杂任务的拆分
  • Q:分布式是什么?
    • 将相同或相关的程序运行在多台计算机上,从而实现特定目标的一种计算方式
  • Q:判断采取数据并行还是任务并行的方式:
    • 任务执行时间短,数据规模大,类型相同且无依赖:数据并行
    • 任务复杂、执行时间长,且任务可拆分成多个子任务:任务并行

02 | 分布式系统的指标:啥是分布式的三围

  • Q:分布式系统的目的是什么?
    • 为了用廉价的、普通的机器解决单个计算机处理复杂、大规模数据和任务时存在的性能问题、资源瓶颈问题,以及可用性和扩展性问题,即用更多的机器,处理更多的数据和更复杂的任务
  • Q:分布式的性能(Performance)指标用来衡量什么?
    • 一个系统处理各种任务的能力
  • Q:分布式的3个性能指标是什么?
    • 吞吐量(Throughput)、响应时间(Response Time)、完成时间(Turnaround Time)
  • Q:吞吐量指的是什么?有哪3个指标?
    • 系统在一定时间内可以处理的任务数
    • QPS(Queries Per Second)、TPS(Transactions Per Second)、BPS(Bits Per Second)
  • Q:QPS是什么?
    • 查询每秒数,用于衡量一个系统每秒处理的查询数。数值越高说明对读操作的支持越好
  • Q:TPS是什么?
    • 事务每秒数,用于衡量一个系统每秒处理的事务数。数值越高说明对写操作的支持越好
  • Q:BPS是什么?
    • 比特数每秒,用于衡量一个系统每秒处理的数据量。对于一些网络系统和数据管理系统,有的事务大需要写入更多数据,BPS更能客观反映系统吞吐量
  • Q:响应时间是什么?
    • 系统相应一个请求或输入需要花费的时间,对于时延敏感的业务非常重要
  • Q:完成时间是什么?
    • 系统真正完成一个请求或处理需要花费的时间
  • Q:资源占用是什么?
    • 一个系统提供正常能力需要占用的硬件资源,如CPU、内存、硬盘等
  • Q:空载资源占用和满载资源占用分别是什么?
    • 空载资源占用:一个系统在没有任何负载时的资源占用
    • 满载资源占用:一个系统满额负载时的资源占用
  • Q:可用性(Availability)和可靠性(Reliability)是什么?
    • 可用性:系统在面对各种异常时可以正确提供服务的能力,即允许部分组件失效的情况下,一个系统对外仍能正常提供服务的概率
    • 可靠性:一个系统完全不出故障的概率,更多用在硬件领域
  • Q:系统可用性的两个指标是什么?
    • 1.系统停止服务的时间与总的时间之比
    • 2.某功能的失败次数与总的请求次数之比
  • Q:可扩展性(Scalability)是什么?
    • 分布式系统通过扩展集群机器规模提高系统性能(吞吐、响应时间、完成时间)、存储容量、计算能力的特性
  • Q:有哪两种扩展系统的方法?
    • 垂直/纵向扩展:增加单机的硬件能力
    • 水平/横向扩展:增加计算机数量