1.CAP理论
一致性(C onsistency)、可用性(A vailability)、分区容忍性(P artition tolerance)
CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布
式架构设计时,必须做出取舍。而对于分布式数 据系统,分区容忍性是基本要求 ,否则就
失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。
BASE理论
BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),
但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。
BASE是指基本可用(Basically Available)、软状态( Soft State)、
最终一致性( Eventual Consistency)。
2.数据分割
如何将问题拆解为可以使用多机分布式解决,使得分布式系统中的每台机器负责问题的一个子集
不管计算还是存储,问题输入对象都是数据
所以如何拆解数据依然是大数据系统的基本问题
方式:
1) 哈希方式
优点:
散列性:好
元信息:只需要函数+服务器总量
缺点:
可扩展性:差。一旦集群规模扩展,大多数数据都需要被迁移并重新分布
2)按数据范围分布数据倾斜:当某个用户id的数据量异常庞大时,容易达到单台服务器处理能力的上限
将数据按特征值的值域范围划分数据。
优点:
可扩展性:好。灵活根据数据量拆分原有数据区间
缺点:
元信息:大。容易成为瓶颈
3)按数据量分布
与按范围分布数据方式类似,元信息容易成为瓶颈
4)一致性哈希
用一个hash函数计算数据(特征)的hash值,
令该hash函数的值域成为一个封闭的环,将节点随机分布在环上。
每个节点负责处理从自己开始顺时针到下一节点的值域上的数据。
优点:
可扩展性:极好。任意动态添加、删除节点,只影响相邻节点
缺点:
元信息:大而且复杂
随机分布节点容易造成不均匀
动态增加节点后只能缓解相邻节点
一个接点异常时压力全转移到相邻节点
3.副本策略primary-secondary,paxos
该协议是中心化副本控制协议中常常用到的,该协议将副本分为两大类:
其中有且仅有一个副本作为primary副本,除primary意外的副本都作为secondary副本。
维护primary副本的节点作为中心节点,中心节点负责维护数据的更新、并发控制、协同
副本的一致性。