分布式模式
- 单机模式:所有有用程序和数据均部署在一台电脑或服务器上,由一台计算机完成所有的处理
- 缺点:单个计算机的处理能力取决于cpu和内存,而且存在性能首先,单点失效问题
- 优点:功能,代码和数据集中,便于维护,管理和执行
- 数据分布式模式:利用多台计算机并行处理多个请求,在相同的时间内完成更多的请求,解决单机效率瓶颈问题。多集群出现的问题如下
- 不同服务器,如何均匀的转发到不同的应用服务器上。
- 请求量较大时,对数据库的频繁读写操作,数据库IO访问的瓶颈
- 当有些数据成为热点数据时,导致数据库访问频繁,压力增大
- 对提升单个任务的执行性能和降低时延无效
-任务并行:将单个复杂的任务拆分为多个子任务,使得多个子任务可以在不同的计算机上并行执行
分布式系统指标
- 性能:衡量一个系统处理各种任务的能力
- 吞吐量:一定时间内可以处理的任务数
- tps:事务数每秒,用于衡量一个系统每秒处理的事务数
- qps:查询数每秒,用于衡量一个系统每秒处理的查询数
- bps:比特数每秒,用于衡量一个系统每秒处理的数据量
- 响应时间:系统响应一个请求或输入需要花费的时间。
- 完成时间:系统完成一个请求或处理需要花费的时间
- 吞吐量:一定时间内可以处理的任务数
- 资源:一个系统提供正常能力需要占用的硬件资源
- 空载资源占用:一个系统没有任何负载时的资源占用
- 满资源占用:一个系统满额负载时的资源占用
- 可用性和可扩展性
- 可用性:系统在面对各种异常时,可以正确提供服务的能力,可以用系统停止服务的时间与总的时间之比衡量
- 可靠性:表示一个系统不出故障的概率
- 可扩展性:分布式系统通过扩展集群集群规模提高系统性
- 加速比:用来衡量系统可扩展性的常用指标
- 不同分布式系统的指标
- 电商系统:电商系统是吞吐量
- IoT:IoT系统最重要的是资源占用指标
- 电信业务:响应时间,完成时间,和可用性
- HPC:HPC系统是任务执行时间长,可用性和可扩展性要求高
- 大数据:可扩展性是大数据系统优先考虑的
- 云计算:系统占用资源和响应时间
- 区块链:吞吐量和完成时间是区块链系统的是要目标,可用性极高
分布式互斥
- 分布式互斥:在分布式系统中,排他性的资源访问方式称为分布式互斥,被互斥访问的恭喜资源叫临界资源
- 集中式算法:引入一个协调者持续,得到一个分布式算法,每个程序需要访问临时资源,先给协调者发送请求。如果没有程序使用这个资源,则直接授权访问,否则等待。
- 分布式算法:当一个程序要访问临界资源时,先向系统中的其他程序发送一条消息,在接收到所以程序返回的统一消息后,才可以访问临界资源,分布式算法适合节点数目少,且变动不频繁的系统
- 令牌环算法:所有程序构成一个环结构,令牌按照顺时针方向在程序传递,收到令牌的程序有权访问临界资源,访问完成后送到下一个程序,若该程序不需要访问临界资源,直接把令牌传送给下一个程序,适用于系统规模较小,并且系统中每个使用临界资源的频率高,且使用时间比较短的场景
- 两层结构的分布式令牌环算法:
分布式选举:
- 含义:选举出一个主节点,由他来协调和管理其他节点,保证集群有序运行和节