分布式数据库 | 青训营笔记

84 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 21 天

分布式数据库

CAP 理论是针对分布式数据库而言的,它是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得。

CAP理论

Consistence 一致性:指数据在多个副本之间能够保持一致的特性。 Availability 可用性:指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应

image.png

CA:如果不要求 Partition Tolerance,即不允许分区,则强一致性和可用性是可以保证的。其实分区是始终存在的问题,因此 CA 的分布式系统更多的是允许分区后各子系统依然保持 CA。

CP:如果不要求可用性,相当于每个请求都需要在各服务器之间强一致,而分区容错性会导致同步时间无限延长,如此 CP 也是可以保证的。很多传统的数据库分布式事务都属于这种模式。

AP:如果要可用性高并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了实现高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。

Master-Workers

背景:在不同机器上通信时,其中一个节点故障了。

可用性

image.png

舍弃一致性,即不保证不同节点的数据一致,可能引起后期计算的错误。

一致性

image.png

舍弃可用性就会导致,一些服务功能失效,可能引起更大的故障。

解决方法

就是使用 Master-Workers

通过一个简单Master节点去分发请求,Master作为同步的主节点。其他从节点 Workers 故障不影响使用,若主节点故障,则通过设计好的机制,重新从 Workers 中选出一个 Master。

这样虽然有一致性和可用性都有损失,但是对两者都有极大的保障,减小了出现问题时产生的危害。

参考

  1. ‌‍⁤⁣​‬⁣‬⁤‬​‌​‍​​‌‌​⁢⁡⁤​⁣⁤‌‬​‬‌‬​⁡​⁡⁤‌​​​⁡‬‬​⁢分布式理论 - 现代架构基石.pptx - 飞书云文档 (feishu.cn)
  2. CAP理论 (分布式系统下的) 通俗理解 | 半码博客 (bmabk.com)
  3. 大白话告你什么是分布式,史上最全详解! - 知乎 (zhihu.com)
  4. 分布式系统架构(一)——Master-Workers 架构 - 知乎 (zhihu.com)