分布式-数据存储

数据存储-思维导图

一、基本理论

1、CAP

CAP 理论对分布式系统做了高度抽象,形成三个指标:一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)

  • 一致性 C:指系统中所有节点在同一时刻的数据是相同的;
  • 可用性 A:指系统提供的服务一直处于可用状态,对于用户的请求可以及时响应;
  • 分区容忍性 P:指不论系统中哪个节点出现问题(消息丢失或高延迟),系统仍然可以提供服务;
权衡策略
不可能三角

由于网络是不可靠的,因此C、A、P三个指标不能同时满足。分布式系统中分区容忍性是一定要保证的,CAP 理论实际上是要在可用性和一致性之间做权衡。

  • 为了保证一致性(CP):不能访问未同步完成的节点,也就失去了部分可用性;
  • 为了保证可用性(AP):允许读取所有节点的数据,但是数据可能不一致;

2、BASE

BASE 是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)三个短语的缩写。它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式(比如流量削峰、延迟响应、体验降级、过载保护等)来使系统达到最终一致性。

  • 基本可用:指分布式系统在出现故障的时候,保证核心可用,允许损失部分可用性;
  • 软状态:指允许系统中的数据存在中间状态,并认为该中间状态不会影响系统整体可用性,即允许系统不同节点的数据副本之间进行同步的过程存在时延;
  • 最终一致性:最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能达到一致的状态;

ACID 要求强一致性,通常运用在传统的数据库系统上。而 BASE 要求最终一致性,通过牺牲强一致性来达到可用性,通常运用在大型分布式系统中。
在实际的分布式场景中,不同业务单元和组件对一致性的要求是不同的,因此 ACID 和 BASE 往往会结合在一起使用。

二、数据分布

1.哈希

2.一致性哈希

3.带有限负载的一致性哈希

4.带虚拟节点的一致性哈希

三、数据复制

1.同步复制技术

2.异步复制技术

3.半同步复制技术

四、分布式缓存

分布式缓存指在分布式环境或系统下,把一些热门数据存储到离用户近、离应用近的位置,让用户和应用很快访问到想要的数据。主流分布式缓存系统有 Redis 和 Memcached。

1.Redis

集群结构

Redis 是去中心化结构,每个节点都负责一部分数据的存储,同时,每个节点还可以通过主备设计来提高可靠性。

特性
  • 数据结构:支持多种数据类型;
  • 持久化:RDB、AOF;
  • 主备同步:全量复制、增量复制;

2.Memcached

集群结构

采用一致性哈希的思路,使用的是 Ketama 算法,主要思想是带虚拟节点的一致性哈希算法

特性
  • 数据结构:只支持简单的 k/v 数据结构;
  • 持久化:不支持持久化,断电后,数据会全部丢失;
  • 主备同步:自身不支持主备,通过第三方实现;

你可能感兴趣的:(分布式-数据存储)