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

相关推荐
怦怦蓝2 分钟前
IDEA 开发邮件发送功能:全流程报错解决方案汇总
java·ide·intellij-idea·发邮件
艾莉丝努力练剑7 分钟前
【优选算法必刷100题:专题五】(位运算算法)第033~38题:判断字符是否唯一、丢失的数字、两整数之和、只出现一次的数字 II、消失的两个数字
java·大数据·运维·c++·人工智能·算法·位运算
山上三树8 分钟前
详细介绍 C 语言中的匿名结构体
c语言·开发语言·算法
大猫和小黄9 分钟前
Java开发过程中的各种ID生成策略
java·开发语言·id
繁依Fanyi10 分钟前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
小罗和阿泽10 分钟前
java [多线程基础 二】
java·开发语言·jvm
小罗和阿泽11 分钟前
java 【多线程基础 一】线程概念
java·开发语言·jvm
悟空码字12 分钟前
SpringBoot整合Zookeeper,实现分布式集群部署
java·zookeeper·springboot·编程技术·后端开发
橘颂TA16 分钟前
线程池与线程安全:后端开发的 “性能 + 安全” 双维实践
java·开发语言·安全
bruce_哈哈哈21 分钟前
go语言初认识
开发语言·后端·golang