四川网站建设培训班,专业网站设计如何提升网页品质,温岭市建设工程质量安全网站,中国足球世界排名文章目录微服务CAP原则AC 可用性 一致性CP 一致性 分区容错性AP 可用性 分区容错性提示#xff1a;以下是本篇文章正文内容#xff0c;SpringCloud系列学习将会持续更新 微服务CAP原则
经过前面的学习#xff0c;我们对 SpringCloud Netflix 以及 SpringCloud 官方整个生… 文章目录微服务CAP原则AC 可用性 一致性CP 一致性 分区容错性AP 可用性 分区容错性提示以下是本篇文章正文内容SpringCloud系列学习将会持续更新 微服务CAP原则
经过前面的学习我们对 SpringCloud Netflix 以及 SpringCloud 官方整个生态下的组件认识也差不多了入门教学就到此为止下一章将开启真正精彩的正片部分本章的最后我们还是来了解一些理论上的知识。
CAP原则又称CAP定理指的是在一个分布式系统中存在Consistency一致性、Availability可用性、Partition tolerance分区容错性三者不可能同时保证最多只能保证其中的两者。 一致性C在分布式系统中的所有数据备份在同一时刻都是同样的值所有的节点无论何时访问都能拿到最新的值 可用性A系统中非故障节点收到的每个请求都必须得到响应比如我们之前使用的服务降级和熔断其实就是一种维持可用性的措施虽然服务返回的是没有什么意义的数据但是不至于用户的请求会被服务器忽略 分区容错性P一个分布式系统里面节点之间组成的网络本来应该是连通的然而可能因为一些故障比如网络丢包等这是很难避免的使得有些节点之间不连通了整个网络就分成了几块区域数据就散布在了这些不连通的区域中这样就可能出现某些被分区节点存放的数据访问失败我们需要来容忍这些不可靠的情况
总的来说数据存放的节点数越多分区容忍性就越高但是要复制更新的次数就越多一致性就越难保证。同时为了保证一致性更新所有节点数据所需要的时间就越长那么可用性就会降低。
所以说只能存在以下三种方案
AC 可用性 一致性 要同时保证可用性和一致性代表着某个节点数据更新之后需要立即将结果通知给其他节点并且要尽可能的快这样才能及时响应保证可用性这就对网络的稳定性要求非常高但是实际情况下网络很容易出现丢包等情况并不是一个可靠的传输如果需要避免这种问题就只能将节点全部放在一起但是这显然违背了分布式系统的概念所以对于我们的分布式系统来说很难接受。
CP 一致性 分区容错性 为了保证一致性那么就得将某个节点的最新数据发送给其他节点并且需要等到所有节点都得到数据才能进行响应同时有了分区容错性那么代表我们可以容忍网络的不可靠问题所以就算网络出现卡顿那么也必须等待所有节点完成数据同步才能进行响应因此就会导致服务在一段时间内完全失效所以可用性是无法得到保证的。
AP 可用性 分区容错性 既然 CP 可能会导致一段时间内服务得不到任何响应那么要保证可用性就只能放弃节点之间数据的高度统一也就是说可以在数据不统一的情况下进行响应因此就无法保证一致性了。虽然这样会导致拿不到最新的数据但是只要数据同步操作在后台继续运行一定能够在某一时刻完成所有节点数据的同步那么就能实现最终一致性所以 AP 实际上是最能接受的一种方案。 比如我们实现的 Eureka 集群它使用的就是 AP 方案Eureka 各个节点都是平等的少数节点挂掉不会影响正常节点的工作剩余的节点依然可以提供注册和查询服务。而 Eureka 客户端在向某个Eureka 服务端注册时如果发现连接失败则会自动切换至其他节点。 只要有一台 Eureka 服务器正常运行那么就能保证服务可用A只不过查询到的信息可能不是最新的C
回到目录… 总结: 提示这里对文章进行总结 本文是对SpringCloud的学习了解了微服务的CAP原则并且认识了三种组合方案的利弊。之后的学习内容将持续更新