Index

分布式很难,原因是:

  1. 并行性,通过机器扩充来实现高性能
  2. 需要考虑容错
  3. 异构环境下,机器之间的交互
  4. 安全和隔离。

部分失败是实现分布式系统中的另外一个难点。

如何通过简单的扩充机器X倍就可以提高性能X倍,这是一个难点。

分布式基础设施:

  1. Storage
  2. Communication
  3. Computing

抽象、分布式系统的核心在于抽象,让使用者感觉不到分布式系统的存在。

实现分布式系统的一些组件:

  1. RPC
  2. Thread
  3. Concurrency
  4. Performance
  5. Scalability

分布式中大量机器必然会存在机器故障,分布式系统中如何进行容错(保证可用性)是一个要解决的问题。

  1. 容错性
  2. 可用性
  3. 可恢复性

non-volatile 非易失性的

通过复制来解决容错问题

一致性:

强一致: 弱一致性: