想成为一名架构师 CAP这些定理一定要知道( 二 )


因此,这种情况下,就是保障了AP架构,但其放弃了 Consisteny(一致性) 。
三、CAP 注意事项?
了解了CAP定理后,对于开发者而言,当我们构建服务的时候,就需要根据业务特性作出权衡考虑,哪些点是当前系统可以取舍的,哪些是应该重点保障的 。
即使是在同一个系统中,不同模块的数据可能应用的CAP架构都是不同的 。举个例子,在某个电商系统中,属于用户模块的数据(账密、钱包余额等)对一致性的要求很高,就可以采用CP架构 。而对于一些商品信息方面的数据对一致性要求没那么高,但为了照顾用户体验,所以对可用性要求更高一些,那么这个模块的数据就可以采用AP架构 。
另外,虽然上面第二节讲到过我们只能选择CP和AP,无法选择CA 。但这句话成立的前提条件是在系统发生了网络故障的情况下 。然而,网络故障的概率在系统的整个生命周期中占比是很小的,因此我们在设计的时候,虽然要考虑网络问题下的方案,但也要考虑网络正常情况下的方案,即在网络正常情况下,CA是可以实现的,我们也需要去保证在绝大多数时间下的CA架构 。
再者,即使我们按照CAP定理,三个中只能取其二,但不代表我们只需要保障其中的两点,而完全的放弃第三点,我们应该为不能保障的第三点也做一些防备措施或者冗余方案,来使系统更加的完善健全 。
以上,就是给大家分享关于CAP定理的知识,关注“武汉千锋”微信公众号,获取更多JAVA学习资料 。




推荐阅读