微服务-CAP和AKF拆分原则

什么是CAP?

C:一致性

A:高可用性

P:分区容错性

一个系统无法同时满足CAP,只能是两两组合。CA、CP或者AP

CA(一致性+高可用性)

想要同时具备一致性和高可用性,往往采用的都是单体服务架构数据存储,但服务是部署多份的。形成了多个服务节点对接同一个数据库的场景。

CP (一致性和分区容错性)

想要同时具备一致性和分区容错性,高可用性就不能被保证,因为此时虽然通过扩展多台数据库保证了分区容错性,但是忧郁需要保证强一致性,在一台数据库有写入数据操作时,其他数据库也要同步写入,此时会加上写锁,阻塞其他服务的读/写请求

AP(高可用性与分区容错性)

同时保证了高可用性和分区容错性,大多数公司在用的架构。此时是无法保证强一致性的,但是可以通过一些手段,来保证弱一致性,过程中无法数据完全一致,允许一定的消息时延,只需要后期能在特定时间(闲时或指定时间)同步,从而达到最终一致性!解决方案如:异步复制、基于日志同步、定时对账与同步等等

AKF拆分原则

借用慕课网的图

相关推荐
酸菜牛肉汤面1 分钟前
22、数据库的乐观锁和悲观锁是什么?怎么实现的?
数据库
dearxue3 分钟前
花费了近 $100 我将ApiHug Vibe 编程模式跑通了
架构·api
陌路2010 分钟前
MYSQL事务篇--事务隔离机制
数据库·mysql
爬山算法15 分钟前
Hibernate(15)Hibernate中如何定义一个实体的主键?
java·后端·hibernate
飞舞花下16 分钟前
微服务架构栈
微服务·云原生·架构
廋到被风吹走17 分钟前
【Spring】Spring AMQP 详细介绍
java·spring·wpf
海南java第二人30 分钟前
Spring IOC依赖注入:从原理到实践的深度解析
spring·ioc
一起养小猫1 小时前
LeetCode100天Day6-回文数与加一
java·leetcode
清风6666661 小时前
基于单片机的PID调节脉动真空灭菌器上位机远程监控设计
数据库·单片机·毕业设计·nosql·课程设计·期末大作业
John_ToDebug1 小时前
Chromium WebUI 深度解析:src/ui/webui/resources 的架构定位与运行机制
chrome·架构·web