-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy path分布式系统相关带的概念.java
70 lines (53 loc) · 1.75 KB
/
分布式系统相关带的概念.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
----------------------------------------
分布式系统开发的一些相关理论基础 |
----------------------------------------
------------------------
CAP |
------------------------
C Consistency 强一致性
* 多个节点中的数据是一致的,当一个节点的数据被修改,那么其他的节点也必须成功的被修改
* 保证了一致性,那么则客户读写的数据完全可以保证是最新的
A Availability 可用性
* 客户端想要访问数据的时候,可以得到响应
* 系统可用,并不代表存储系统所有节点提供的数据是一致的
* 每一个操作必须有意想中的响应并终止
P Partition tolerance 分区容错性
* 操作均能够执行完毕,即使个别组件不可用
# CAP的3进2
* 没有任何分布式系统能彻底满足CAP仨个东西,只能满足其中俩
* CA
* 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大
* CP
* 满足一致性,分区容忍的系统,通常性能不是很高
* AP
* 满足可用性,分区容忍的系统,通过可能对一致性要求低一些
# 遵循该协议的DB
* 部分CP系列
Mogodb
Hbase
Redis
* 部分CA系列
MySQL
Oracle
SqlServer
* 部分AP系列
Couchdb
# 模拟场景解释CAP
* 一个主N从服务的DB架构
C Consistency
* 用户往主库写入数据后, 读操作, 可以立即从任意的节点读取到刚才写入的最新数据
* 写入数据到主数据库, 主数据库需要把数据同步到从数据库
* 在同步期间, 需要把从库锁定, 等待主从同步完成后才释放锁
* 要么响应最新的数据, 要么响应错误信息
* 可能导致操作更加的耗时
A Availability
* 从库接收到数据查询的请求, 可以立即响应查询到的结果
* 从库不能出现响应超时, 或者响应错误
* 写入数据到主库的时候, 要把数据同步到从库
* 由于要保证从库的可用性, 不能在同步的时候对从库进行锁定操作
* 要么响应旧数据, 不能响应错误信息
* 可能读取到的数据不是最新的
P Partition tolerance
* 任何一个节点挂掉, 不会影响到读写操作
* 任何一个节点挂掉, 不会影响到其他的节点
* 分区容忍性, 是分布式系统的具备的基本能力