1.一般来说,有以下三种类型的分布式计算系统:
分布式信息系统:使用多种通信模型将信息分布在不同的服务器上。
分布式普及系统:使用嵌入式计算设备(例如 ECG 监视器、传感器、移动设备)
以及分布式计算系统:网络上的计算机通过消息传递交换数据。
2.分布式系统的好处
扩展:分布式系统允许您水平扩展,以便您可以考虑更多流量。
模块化增长:几乎没有扩展限制。
容错性:分布式系统比单机更容错。
成本效益:初始成本高于传统系统,但由于其可扩展性,它们很快变得更具成本效益。
低延迟:用户可以在多个位置拥有一个节点,因此流量将流向壁橱中的一个节点。
效率:分布式系统将复杂的数据分解成更小的部分。
并行性:分布式系统可以设计用于并行性,其中多个处理器将复杂的任务分成多个部分。
3.一致性:一致性是一种模型或者语义
来约定一个分布式系统如何向外界(应用)提供服务
kv中常见的一致性模型
最终一致性:读取可能暂时读不到,但最终会读到
线性一致性:最严格,线性执行
4.共识算法是指在分布式场景中,多个节点为了达成相同的数据状态而运行的一种分布式算法。 在分布式场景中,可能出现网络丢包、时钟漂移、节点宕机、节点作恶等等故障情况,共识算法需要能够容忍这些错误,保证多个节点取得相同的数据状态。
根据可容忍的故障类型的不同,可以将共识算法分为两类:
容忍宕机错误类算法(crash fault tolerant consensus algorithm),可以容忍网络丢包、时钟漂移、部分节点宕机这种节点为良性的错误。常见算法有 Paxos、Raft。
容忍拜占庭错误类算法(byzantine fault tolerant consensus algorithm),可以容忍部分节点任意类型错误,包括节点作恶的情况。常见算法有 PBFT、PoW、PoS等。
根据使用场景的不同,又可将共识算法分为公链共识、联盟链共识两类。\