这是我参与「第五届青训营」伴学笔记创作活动的第 12 天
分布式系统是指跨多个节点的计算机程序的集合,分布式理论研究的是如何将计算机系统的各个组件分布在不同的物理位置,协同以实现共同的目标。使用分布式系统有很多优势,包括去中心化、低成本、弹性、资源共享、可靠性高等等。从学习者的角度而言是后端开发必备技能分布式理论
基本原理
分布式系统的基本原理包括:通信、协调、同步和容错。
通信:分布式系统中各个组件之间需要进行通信以共享信息。通信协议包括TCP/IP、HTTP等。
协调:分布式系统中各个组件需要协同工作,因此需要实现协调。协调的方式包括锁定、事务、消息传递等。
同步:分布式系统中各个组件需要保持一致性。同步方式包括时钟同步、一致性协议等。
容错:分布式系统中存在故障,因此需要实现容错。容错方式包括备份、重试、重启等。
常用分布式系统
1、ZooKeeper
是一个分布式应用程序协调服务,用于管理分布式系统中的配置信息、命名、提供分布式锁等。
2、Docker
是一个开源容器化平台,用于创建、部署和运行分布式应用程序
3、Apache Hadoop
开源框架,用于处理大规模数据集的分布式存储和处理
3、Apache Kafka
是一个分布式流处理平台,用于处理大规模的实时数据流。CAP理论
CAP理论是指分布式系统中的三个基本要素:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)一致性指所有节点在同一时间看到的数据相同,即系统在数据更新时能够保证数据的一致性。可用性指系统随时处于可用状态,即系统能够及时响应用户请求并返回结果。分区容错性指分布式系统能够在遇到网络分区或节点故障等异常情况时依然能够正常运行,即系统能够容忍部分节点的失效或无法访问。
CAP理论指出,在分布式系统中,无法同时满足一致性、可用性和分区容错性这三个要素,只能在其中选择两个。这是由于分布式系统中的网络分区和节点故障等不可避免的问题,使得在分布式系统中保证一致性和可用性是一种矛盾,必须在其中做出选择。
根据CAP理论,现有的分布式数据库系统可分为三类:CA系统、AP系统和CP系统。CA系统指的是保证一致性和可用性的系统,这种系统在出现网络分区或节点故障时会选择牺牲分区容错性来保证一致性和可用性。AP系统指的是保证可用性和分区容错性的系统,这种系统在出现网络分区或节点故障时会选择牺牲一致性来保证可用性和分区容错性。CP系统指的是保证一致性和分区容错性的系统,这种系统在出现网络分区或节点故障时会选择牺牲可用性来保证一致性和分区容错性。