AP对应的模型和应用?

CA without P

理论上放弃P(分区容错性),则C(强一致性)和A(可用性)是可以保证的。实际上分区是不可避免的,严格上CA指的是允许分区后各子系统依然保持CA。

CA模型的常见应用:

  • 集群数据库
  • xFS文件系统

CP without A

放弃A(可用),相当于每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很多传统的数据库分布式事务都属于这种模式。

CP模型的常见应用:

  • 分布式数据库
  • 分布式锁

AP wihtout C

要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。

AP模型常见应用:

  • Web缓存
  • DNS

举个大家更熟悉的例子,像我们熟悉的注册中心ZooKeeperEurekaNacos中:

  • ZooKeeper 保证的是 CP
  • Eureka 保证的则是 AP
  • Nacos 不仅支持 CP 也支持 AP

标签: java, Java面试题, 分布式, Java问题合集, Java编程, Java问题精选, Java常见问题, 分布式面试题