Java - CAP定理

CAP 定理指的是在一个分布式系统中,一致性 Consistency 、可用性 Availability 、分区容
错性 Partition tolerance ,三者不可兼得。
一致性( C ):分布式系统中多个主机之间是否能够保持数据一致的特性。即,当系统数
据发生更新操作后,各个主机中的数据仍然处于一致的状态。
可用性( A ):系统提供的服务必须一直处于可用的状态,即对于用户的每一个请求,系
统总是可以在有限的时间内对用户做出响应。
分区容错性( P ):分布式系统在遇到任何网络分区故障时,仍能够保证对外提供满足一
致性和可用性的服务。
CAP 定理的内容是:对于分布式系统,网络环境相对是不可控的,出现网络分区是不可
避免的,因此系统必须具备分区容错性。但系统不能同时保证一致性与可用性。即要么 CP
要么 AP
BASE 理论
BASE Basically Available (基本可用)、 Soft state (软状态)和 Eventually consistent (最
终一致性)三个短语的简写, BASE 是对 CAP 中一致性和可用性权衡的结果,其来源于对大
规模互联网系统分布式实践的结论,是基于 CAP 定理逐步演化而来的。
BASE 理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务
特点,采用适当的方式来使系统达到最终一致性。
1 ) 基本可用
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。
2 ) 软状态
软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的
整体可用性,即允许系统主机间进行数据同步的过程存在一定延时。软状态,其实就是一种
灰度状态,过渡状态。
3 ) 最终一致性
最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到
一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需
要保证系统数据的实时一致性。
Zookeeper CP
Zookeeper 遵循的是 CP 模式,即保证了一致性,但牺牲了可用性。
Leader 节点中的数据发生了变化后,在 Follower 还没有同步完成之前,整个 Zookeeper
集群是不对外提供服务的。如果此时有客户端来访问数据,则客户端会因访问超时而发生重
试。不过,由于 Leader 的选举非常快,所以这种重试对于用户来说几乎是感知不到的。所
以说, Zookeeper 保证了一致性,但牺牲了可用性。
Consul CP
Consul 遵循的是 CP 模式,即保证了一致性,但牺牲了可用性。
Redis CAP
Redis 遵循的是 AP 模式,即保证了可用性,但牺牲了一致性。
Eureka CAP
Eureka 遵循的是 AP 模式,即保证了可用性,但牺牲了一致性。
Nacos CAP
Nacos 在做注册中心时,默认是 AP 的。但其也支持 CP 模式,但需要用户提交请求进行
转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HttpSessionListener监听器和HttpSessionAttributeListener监听器

1.作用:监听Session创建或销毁,即生命周期监听 2.相关方法: //void sessionCreated(HttpSessionEvent se):创建session时调用 //void sessionDestroyed(HttpSessionEvent se):销毁sessio时调用 3.使用场景: 和前面的ServletCo…

mysql自动安装脚本(快速部署mysql)

mysql_install - 适用于生产环境单实例快速部署 MySQL8.0 自动安装脚本 mysql8_install.sh(执行前修改一下脚本里的配置参数,改成你自己的)(博客末尾) my_test.cnf(博客末尾)(这个…

C语言预读取技术 __builtin_prefetch

__builtin_prefetch 是一个编译器内置函数,用于在编译时向编译器发出指令,要求在执行期间预取内存数据。它通常用于提高程序的性能,特别是对于那些需要频繁访问内存的情况。 __builtin_prefetch 函数的语法如下:c __builtin_prefe…

力扣24 两两交换链表中的节点 Java版本

文章目录 题目解题方法Code 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:hea…

【五】Python 代理模式

文章目录 5.1 代理模式概述5.1.1 代理介绍5.1.2 代理模式的作用 5.2 代理模式的UML类图5.3 了解不同类型的代理5.3.1虚拟代理5.3.2 远程代理5.3.3 保护代理5.3.4 智能代理 5.4 现实世界中的代理模式5.5 代理模式的优点5.6 门面模式和代理模式之间的比较 5.1 代理模式概述 5.1.…

VSCode 配置自动生成头文件

相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生,都会发现每个头文件都会包括下面的这些格式&…

Cent OS7 磁盘挂载:扩展存储空间和自动挂载

文章目录 (1)概述(2)查看磁盘使用情况(3)VMware虚拟机挂载磁盘(4)物理机磁盘挂载(5)ntfs硬盘处理 (1)概述 在Linux系统中&#xff0c…

C#教程(二):继承

1、介绍 在C#中,继承是一种面向对象编程的概念,它允许一个类(子类/派生类)获得另一个类(父类/基类)的属性和方法。这使得可以通过构建新的类,重用现有类的功能,并在不同的类之间建立…

智能优化算法应用:基于共生生物算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于共生生物算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于共生生物算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.共生生物算法4.实验参数设定5.算法结果6.…

拓展 Amazon S3 技术边界:Amazon S3 Express One Zone 的创新之路

授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 自 Amazon S3 服务推出以来,一直是全球各行各业数百万客…

学习MS Dynamics AX 2012编程开发 1. 了解Dynamics AX 2012

在本章中,您将了解开发环境的结构以及Microsoft Dynamics AX中的开发人员可以访问哪些工具。在本书的第一步演练之后,您将很容易理解著名的Hello World代码,您将知道应用程序对象树中的不同节点代表什么。 以下是您将在本章中学习的一些主题…

linux7安装python3.12.1教程

1.下载tar.gz包 地址:Python Release Python 3.12.1 | Python.org 2.上传包到linux服并解压 cd /home/local/ ll tar -zxvf Python-3.12.1.tgz 3.安装编译python所需环境 yum install -y gcc yum install -y zlib* yum -y install zlib-devel bzip2-devel opens…

JIRA 重置管理员密码

忘记了JIRA管理员密码改怎么办? 在Jira6.4之前需要进到数据库里强行修改数据信息,后来的版本就有好多了,可以设置一个启动参数,帮您找回密码,下面就介绍一下如何找回管理员密码 设置启动参数重置管理员密码 找到设置…

大象elephant目标检测数据集VOC+YOLO格式2300张

大象是长鼻目象科的哺乳动物,有两个属,是世界上最大的陆生动物。其像柱子一样的四肢和宽厚的脚掌可以稳稳支撑住庞大的身体。巨大的头上长有蒲扇状的大耳朵和长且有弹性的鼻子。象耳上有丰富的血管,可以有效散热。鼻子和上唇合而为一的象鼻由…

计算机网络——网络层——OSPF协议的介绍

什么是 OSPF ? OSPF 是一个基于链路状态的自治系统内部路由协议,在 TCP/IP 的网络层中进行路由选择,常用于构建大型企业网络或者服务上的骨干网络。在互联网核心路由器之间也可以使用。 OSPF 概述 OSPF 使用的是 Dijkstra(最短…

制作蓝牙小车(一)

制作控制蓝牙小车app 想制作一个蓝牙小车,通过手机app程序操控小车运行,制作分2个部分(app制作,蓝牙小车硬件以及程序制作),先完成第一个部分app制作,本次app是通过androidstudio软件来制作安卓…

FFmpegd的AVBSF

本章主要介绍AVBSF 文章目录 结构体定义对外函数常见的过滤器 从名字我们可以知道这是个码流过滤器,我们最常用的是一个叫做h264_mp4toannexb_bsf的东东 这个过滤器的作用是把h264以MP4格式的NALU转换为annexb(0x000001) const AVBitStreamF…

centos安装了curl却报 -bash: curl: command not found

前因 我服务器上想用curl下载docker-compress,发现没有curl命令,就去下载安装,安装完成之后,报-bash: curl: command not found 解决方法 [rootcentos ~]# rpm -e --nodeps curl warning: file /usr/bin/curl: remove failed: …

python每日学10:关于python实用版本的选择

用python也有好几年了,也会经常安装python,因为有工作需要,可能在各个地方使用python,自己的电脑也经常重装,重装后会装python,还有的时候,装的包太多了,影响整个环境的使用&#xf…

每日一道算法题 6(2023-12-14)

题目描述: 有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。 例如字符串aaabbccccd 经过压缩变成字符串 3abb4cd 请您编写解压函数,根据…