【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、对其他节点之前的修改是可见的(已同步)且确定的,并且新的写入建立在已经达到同步的基础上

相关推荐
青岑CTF39 分钟前
攻防世界-Web_php_include-胎教版wp
开发语言·安全·web安全·网络安全·php
m0_7482331740 分钟前
C#与C语言:5大核心语法共性
java·jvm·算法
JavaGuide40 分钟前
推荐一个基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0 的大模型项目!
java·spring boot·spring
雾岛听蓝1 小时前
C++11 列表初始化与右值引用核心解析
开发语言·c++·经验分享
Maynor9961 小时前
Clawdbot安装教程:从零开始到接入飞书
java·数据库·飞书
小北方城市网1 小时前
Spring Boot 多数据源与事务管理实战:主从分离、动态切换与事务一致性
java·开发语言·jvm·数据库·mysql·oracle·mybatis
痴儿哈哈1 小时前
C++与硬件交互编程
开发语言·c++·算法
roman_日积跬步-终至千里1 小时前
【Java 并发-面试】从线程基础到企业级开发的知识点概况
java·开发语言
云中飞鸿1 小时前
VS2015安装后,安装QT59,之后安装qt-vsaddin-msvc2015-2.4.3.vsix 文件失败问题!
开发语言·qt
m0_748233171 小时前
C与C++:底层编程的六大核心共性
java·开发语言