逸帅 发表于 2024-10-18 10:30

微服务 - CAP和AKF拆分原则

# 什么是CAP?

C:一致性

A:高可用性

P:分区容错性

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

## CA(一致性+高可用性)

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

!(https://tc2.qlulu.top/img/blog/202410181005885.png)

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

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

!(https://tc2.qlulu.top/img/blog/202410181014562.png)

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

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

!(https://tc2.qlulu.top/img/blog/202410181026399.png)





# AKF拆分原则

借用****的图

!(https://tc2.qlulu.top/img/blog/202410171007301.png)

VioletKiss 发表于 2024-10-21 09:47

既然学了就要学以致用,那么你认为52破解论坛适用于CAP理论中哪两个特性

逸帅 发表于 2024-10-21 10:16

VioletKiss 发表于 2024-10-21 09:47
既然学了就要学以致用,那么你认为52破解论坛适用于CAP理论中哪两个特性

分析一下论坛,分层次来看,大部分是AP,少部分是CP(例如吾爱币)不出意外是AP,C通常是最终一致性来保证的。
A是高可用性,是论坛访问的基础,所以不能缺
P是分区容错性,对于文章、附件等持久化资源是必须的,防止一处失火则数据丢失
C是吾爱币这种涉及到“金融交易”的服务所需要的,若没有强一致性,则容易出现各节点之间的数据不一致的时候,导致货币数量不一致(例如签到、扣除币等)。当然也有其他技术手段避免,但是代价会更高,做成强一致性会更简单。
页: [1]
查看完整版本: 微服务 - CAP和AKF拆分原则