微服务-CAP和AKF拆分原则

什么是CAP?

C:一致性

A:高可用性

P:分区容错性

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

CA(一致性+高可用性)

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

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

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

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

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

AKF拆分原则

借用慕课网的图

相关推荐
爱的叹息2 分钟前
Spring Boot 3.x 下 Spring Security 的执行流程、核心类和原理详解,结合用户描述的关键点展开说明,并以表格总结
spring boot·后端·spring
Determined_man4 分钟前
Mybatis-plus queryWrapper的使用
数据结构·数据库
飞奔的屎壳郎5 分钟前
flink部署使用(flink-connector-jdbc)连接达梦数据库并写入读取数据
大数据·数据库·flink
我是坑货9 分钟前
maven的项目管理和构建生命周期
java·log4j·maven
Databend18 分钟前
Databend Cloud 如何给游戏行业数据分析带来 10 倍收益提升?
数据库
喆星时瑜21 分钟前
MySQL【8.0.41版】安装详细教程--无需手动配置环境
数据库·mysql·安装教程
菜就多练吧31 分钟前
Redis与Mysql双写一致性如何保证?
数据库·redis·mysql
佩奇的技术笔记36 分钟前
高级:Redis 面试题精讲
数据库·redis·缓存
遥不可及~~斌1 小时前
基于Redis实现短信防轰炸的Java解决方案
java·数据库·redis
AronTing1 小时前
300%性能提升!CompletableFuture异步编排四大核心模式与避坑指南
java·后端·安全