分布式有三个特征,但是无法同时满足三个。
最多满足其中的两个。
这三个分别是:
- 一致性
Consistency
就是保证各个节点的数据一致
- 可用性
Availability
客户端一直可以进行读写操作,不会出现超时或者服务连不上的情况。
- 分区容错性
Partition tolerance
分布式了其中的某个节点或者某个网络分区不可用的时候,不影响整体的使用
以上三个:显然 分区容错(P)是必须的。如果一个节点坏了就都不能用了那也就不是分布式了。
所以大多数的分布式框架都是 AP 或者 CP 的
具体用哪种框架需要根据自己业务的使用场景来定。
eureka : AP
consul: CP
nacos 默认AP 可以切换成CP