这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
一、分布式系统概述:
1.什么是分布式系统
分布式系统是一种由多台独立的计算机协调工作以完成共同的任务的系统。分布式系统提供了更高的可用性、可扩展性、容错性和性能,因此被广泛应用于各种领域,如数据中心、大数据、云计算、物联网等。
2.Why-How-What:
- Why:随着数据量的增加,单台计算机难以满足业务需求,因此需要采用分布式系统。
- How:分布式系统通过协调多台计算机的工作来实现共同的任务,使用的技术包括分布式协议、通信机制、数据一致性、分布式存储等。
- What:分布式系统的任务可以是计算密集型、存储密集型、数据分析、数据同步等,具体取决于应用场景。
3.常见的分布式系统
分布式系统有很多种,其中包括分布式数据库、分布式存储系统、分布式计算系统、分布式消息系统等。
-
分布式数据库:分布式数据库是在多台计算机上部署的数据库,可以实现数据的高可用性和扩展性。常见的分布式数据库有HBase、Cassandra、MongoDB等。
-
分布式存储系统:分布式存储系统是将数据存储到多台计算机上的系统,可以实现数据的水平扩展和高可用性。常见的分布式存储系统有HDFS、Ceph、GlusterFS等。
-
分布式计算系统:分布式计算系统是通过多台计算机协调工作,来完成大规模计算任务的系统。常见的分布式计算系统有Hadoop、Spark、Storm等。
-
分布式消息系统:分布式消息系统是在分布式环境下,使用消息队列协调各个节点的通信系统。常见的分布式消息系统有Kafka、RabbitMQ、ActiveMQ等。
二、系统模型
1.故障模型
故障模型是指研究分布式系统中可能出现的各种故障类型和故障的影响。常见的故障类型包括宕机、消息丢失、消息重复等。故障模型对于分布式系统的容错性和可靠性具有重要影响。
2.拜占庭将军问题
拜占庭将军问题是一个分布式系统中的重要问题,它是用来说明在分布式系统中如何达成共识的。它的核心思想是,在分布式系统中有多个节点,每个节点都有自己的状态,而这些节点之间的通信是有延迟和不可靠的,因此,它们需要通过一些协议来达成一致,以确保系统的正确性。
3、共识和一致性
在分布式系统中,共识和一致性是指所有节点在某一时刻都同意同样的状态。共识是分布式系统中一个重要的问题,因为在分布式系统中,各个节点之间的通信是有延迟和不可靠的,因此需要通过一些协议来达成一致,以保证系统的正确性。
4、时间和事件顺序
在分布式系统中,时间和事件顺序是指各个节点之间对于事件发生的先后顺序的不同意见。在分布式系统中,时间是分散的,事件发生的顺序也可能不同,因此需要通过一些协议来确定事件的发生顺序,以保证系统的正确性。