好久没更了,今天简单聊一下两个分布式系统理论
一、CAP理论
- 一致性 (Consistency) :数据在多个节点间保持同步
- 可用性(Availability ):每次请求都能获取到非错的响应,但不能保证获取的数据为最新数据,系统一直处于可以提供服务的状态。
- 分区容错性(Partition Tolerance):任意数量的消息被节点间的网络丢失或延迟,系统仍能正常运行。即系统在面对网络分区的情况下仍然能够正常工作。
对于一个分布式系统而言,不可能同时满足上述三点,在面对网络分区的情况下,系统必须在一致性和可用性之间做出权衡选择。
二、Base理论
BASE理论是对分布式系统设计中的一种权衡原则,是对ACID(原子性、一致性、隔离性和持久性)原则的一种补充和扩展。BASE是指以下三个概念:
- 基本可用(Basically Available):系统必须保证在任何情况下都能够保证基本的可用性,即系统随时都能够处理并响应请求,尽管可能会有一些延迟或性能下降。
- 软状态(Soft state):系统中的数据状态可以是不一致的,在某个时刻可能存在中间状态。这意味着系统可以容忍一段时间内的数据不一致或者部分错误,而无需强制要求所有节点达到一致状态。
- 最终一致性(Eventual consistency):系统中的数据最终会达到一致的状态,但在某个时刻可能存在不一致的状态。最终一致性关注的是系统在一段时间内(例如秒级、分钟级等)可以达到一致状态,而不要求实时的一致性。
BASE理论在分布式系统的设计中提供了一种更灵活和容错的方式。相对于ACID原则追求强一致性的特点,BASE原则更加注重系统的可用性和性能,在一定程度上放宽了数据一致性的要求。它适用于那些对一致性要求较低,但对可用性和性能要求较高的应用场景,如大规模网站和云计算平台等。