1.分布式系统是什么
今天几乎所有电脑都是分布式的,原因如下。
1.地理因素:大的组织和公司必然分布在多个地方。
2.并行化:我们需要多核处理器或计算机集群来加速计算。
3.可靠性:数据需要备份在不同的机器上以免丢失。
4.可用性:数据需要复制到不同的机器上以利 快速获取,避免可 能的瓶颈,并减少延迟。
利与弊
利
然分布式系统带来了很多好处,比如扩大存储容 和计算能力, 甚至有可能连接地理空间上分离的区域。
弊
然而它也带来了 个很麻烦的 协调问题(Coordination Pro bl ems)。协调问题非常普遍,具备不同的特 点,也有着不同的称谓,诸如:区块链(Blockchain)、 致性(Consistency )、 协定(Agreement )、共识(Consensus )、账单(Ledger )、事件溯源(Event Soucing )等。
在分布式系统中,协调问题是很常见的 即便是 个分布式系统中 的每个节点(如计算机、核、网络交换机等)几年才发生 次故障,但 如果系统包含数百万个节点,那么平均每分钟都将发生 次故障 从好 的方面讲,人们期待 个多节点的分布式系统可以容忍 些错误并且 持续正常工作。
2.容错问题和 Paxos 算法
我们应该如何创建一个容错的分布式系统呢?
2.1客户端/服务器
定义 2.1 节点 (Node)系统中 个工作单元被称为节点(Node 在一个计算机网络中 所有的计算机都是节点 。在经典的客户端/服务 器模式下,服务器和客户端都是节点。
模型 2.2 消息传递 (Message Passing).我们在消息传递模式(Message Passing Mode )下研究由 组节点构成的分布式系统。每个节点都 能进行本地运算,并可以向所有其他节点发送消息。
2.4 消息丢失( essage Loss ).在存在消息丢失(Message Loss )的消息传递模式下,任何 条消息都不能保证可以安全地到达消息的接收者。