【java八股文】之分布式系列篇

【java八股文】之MYSQL基础篇-CSDN博客

【java八股文】之JVM基础篇-CSDN博客

【java八股文】之Redis基础篇-CSDN博客

【java八股文】之Spring系列篇-CSDN博客

【java八股文】之分布式系列篇-CSDN博客

【java八股文】之Java基础篇-CSDN博客

【java八股文】之多线程篇-CSDN博客

1、什么是CAP BASE理论

1.1 CAP

  • 一致性: 在分布式环境下,一致性是指数据在多个副本之间是否能够保持一致性的特性,等同于所有的节点访问同一份最新数据的副本。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证数据仍然一致性的状态。
  • 可用性:每次请求都能够保证正确的响应,但是不保证获取的数据为最新的数据。
  • 分区容错性:分布式情况下在遇到任何的网络分区额故障的时候,仍然需要能够保证对外提供一致性和可用性的服务,除非是整个网络环境发生了故障。

1.2 BASE

  • 基本可用:在分布式系统出现故障,允许损失部分的可用性(服务降级、页面降级)
  • 软可用:允许分布式出现中间状态。而且中间状态不影响系统的可用性。这里的中间状态指的是data replication(数据备份节点)之间的数据更新可以出现延迟的最终一致性。
  • 最终一致性:data replications 经过一段时间达到一致性。

2、重点协议CP(ZAB RAFT) AP( Distro)

2.1 强一致性

1、任意时刻,所有的节点数据都是一样的。

2、一个集群需要对外部提供强一致性,所以只要集群内部的某一个数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后,才能对外部提供访问。

3、保证了强一致性,务必会损耗可用性

2.2 弱一致性

1、系统中的某个数据被更新后,后续对该数据的读取操作可能会得到更新后的数值,也可能会得到更新前的数值

2、即使过来一段时间窗口,后续的读取也不能保证一致性

2.3 最终一致性

1、弱一致性的特殊形式,不保证在任意时刻节点上的同一份数据是相同的,但是随着时间的迁移,不同节点的同一份数据总是在趋向一致性变化

2、存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值

2.4 顺序一致性

1、任意一次读都能读到某个数据的最近一次写的数据

2、对其他节点之前的修改是可见的(已同步)且确定的,并且新的写入建立在已经达到同步的基础上

相关推荐
江华森11 分钟前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python
杜子不疼.13 分钟前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
编程(变成)小辣鸡21 分钟前
Spring事务失效场景
java·后端·spring
极客先躯1 小时前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试
老迟到的茉莉1 小时前
Hermes 是谁?跟 Claude Code 差在哪
开发语言·python
学逆向的1 小时前
汇编——内存
开发语言·汇编·算法·网络安全
tachibana22 小时前
hot100 翻转二叉树(226)
java·数据结构·算法·leetcode
brave_zhao2 小时前
nginx的进程架构
java·学习·nginx
兰令水2 小时前
leecodecode【面试150】【2026.7.9打卡-java版本】
java·数据结构·leetcode·面试·职场和发展
禾高网络2 小时前
互联网医院|AI 互联网医院成品开发系统
java·大数据·人工智能·小程序