微服务-CAP和AKF拆分原则

什么是CAP?

C:一致性

A:高可用性

P:分区容错性

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

CA(一致性+高可用性)

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

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

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

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

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

AKF拆分原则

借用慕课网的图

相关推荐
神仙别闹4 分钟前
基于QT(C++)实现线性表的建立、插入、删除、查找等基本操作
java·c++·qt
却尘4 分钟前
让 AI 不再写到一半就开始"编":SDD + OpenSpec 上手指南
架构
yexuhgu8 分钟前
MySQL主从复制支持跨版本吗_不同版本间同步的注意事项
jvm·数据库·python
woxihuan12345614 分钟前
CSS怎样调整弹性项目排列顺序_使用order属性轻松控制DOM显示顺序
jvm·数据库·python
Kiyra18 分钟前
从上传到可问答:Interview Agent 的知识库 RAG 链路
java·人工智能·后端·spring·职场和发展
拙野21 分钟前
工作中Mybatis动态SQL的使用
java·sql·mybatis
m0_7485548126 分钟前
golang如何实现数据去重处理_golang数据去重处理实现步骤
jvm·数据库·python
AI人工智能+电脑小能手27 分钟前
【大白话说Java面试题】【Java基础篇】第39题:说说反射的用途及实现原理,Java获取反射(Class)的三种方法
java·开发语言·后端·python·面试
PeterLi32 分钟前
踩坑实录:JRebel 启动报 Mapper 重复 ID 异常,IDEA 普通启动却正常?
java·后端
神明93134 分钟前
mysql索引排序规则设置方法_mysqlCollation对索引影响
jvm·数据库·python