分布式基本概念

节点

  指一个可以独立按照分布式协议完成一组逻辑的程序个体

有状态与无状态

  当一个节点可以在其本机上进行数据交互则称为有状态节点。如果一个节点进行数据交互需要请求其他节点来帮其实现则称为无状态节点

异常
  1. 机器怠机 指机器异常死机,需要人为重启。在怠机过程中,无法工作的节点的状态 称为 不可用状态,一般怠机节点可以通过读取本地硬盘或者读取其他节点的数据恢复其内存信息从而重新进入正常状态,从不可用到可用称为宕机恢复。
  2. 网络异常 多为网络拥塞造成丢包或者数据经过对方协议栈ACK后,但因对方服务器怠机导致无法正常处理数据所造成的异常。
  3. 网络分化 指某些节点的通信不正常或丢包率不在可接受范围内,则称这种特殊的异常为网络分化(network partition),多为跨机房通信时发生
  4. 存储数据丢失 这个指节点存储的数据不可被读取或读取出的数据错误。这种情况多为 硬件存储介质损坏时发生。对于状态节点来说,数据丢失意味着状态丢失。
副本

  副本指在分布式系统中为数据或者服务提高的备份。副本分为如下俩个副本

  1. 数据副本 指在不同节点上持久化存储同一份数据
  2. 服务副本 在不同节点上起相同的服务
副本一致性

  副本一致性指通过相应的控制协议使得系统外部读取系统内部各个副本的数据在一定的约束条件下结果相同。副本一致性是针对整个分布式系统而言,并非某一个副本而言。

  • 强一致性 任何时刻任何用户或节点读取的副本数据都是最新的。
  • 单调一致性 任何时刻,任何用户一旦读到某个数据在某次更新后的值,不会再读到比这个值更旧的值。这个一致性从用户视角程度讲的,可能其他用户读到的值并非与他一致。
  • 会话一致性 任何用户在某一次会话一旦读到某次更新后的值,不会在此会话中读到比它更旧的值,这个一致性从会话角度上讲的。
  • 最终一致性 指各个副本的数据最终达到完全一致的状态,但到达完全一致状态所需的数据不能保障。对于最终一致性分布式系统而言,只要一个用户一直读一个副本的内容,那么它读到的值只会越来越新类似单调一致性效果,但不同副本间无法保障一致性。
  • 弱一致性 指一旦更新,用户无法在一个确定时间内读到这次更新的值,即使可能读到了新的值在某个副本上,也不能保证在其他副本上读到了新的值。

衡量分布式系统的指标

性能
  • qps 指每秒可以执行多少次具体的相应操作,它是衡量系统的并发能力(Get/Set)
  • 吞吐量 指系统在某一时间可以处理的数据总量
  • 延迟 指处理某一操作需要的时间
可用性

  指容错能力,当发生异常时(可能某个副本发生异常),整个系统还能正常工作的特性。

可扩展性

   指分布式系统通过集群扩展来提高性能、存储容量、计算能力的特性。可扩展性越好表明系统的某些指标随着机器数量的增长也进行相应的增长。

一致性

  不同的副本一致性导致用户使用分布式系统的难度不同,强一致性的话用户随意读取一个副本的内容都是最新的。如果其他一致性的话,可能想要读取最新的内容可能实现起来有一定难度,所以一致性也是分布式系统的一个指标

猜你喜欢

转载自blog.csdn.net/sdoyuxuan/article/details/82854156
今日推荐