在java开发分布式系统当中,无论如何都绕不过cap理论,那你知道这是一个什么理论吗?它的原理是什么呢?下面跟我一起看看吧。

CAP理论

一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition

tolerance)这三项中的两项。

CAP原理及定义

Consistency 一致性

一致性就是“all nodes see the same data at the same

time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

分布式的一致性

对于一致性来说,可以从客户端与服务端两个不同的视角来看。以客户端看来,一致性主要指的是多并发访问时更新过的数据如何获取的问题。从服务端看,则是更新如何复制分布到整个系统,以保证数据最终一致。一致性是因为有并发读写才出现的问题,所以理解一致性相关问题时,需要注意结合考虑并发读写的场景。

客户端角度看来,多进程在并发访问时,已经更新过的数据在不同进程如何获取的不同策略,会决定不同的一致性。对关系型数据库,必须要求更新过的数据都能被后续的访问看到,这是强一致性。

如果你可以容忍后续的一部分或者干脆全部访问不到,就是弱一致性。如果需要经过一段时间才要求访问到更新后数据,则是最终一致性。

Availability可用性

可用性指的就是“Reads and writes always succeed”,也就是服务一直可用,并且是正常响应时间。

一个可用性的分布式系统,它的每一个非故障的节点都必须对每一个请求作出响应。也就是,这个系统使用的任何算法必须最终终止。当同时要求分区容忍性时,这是一个很强的定义:即使是严重的网络错误,每个请求必须终止。

好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。可用性通常情况下可用性和分布式数据冗余,负载均衡等有着很大的关联。

Partition Tolerance分区容错性

分区容错性指的就是“the system continues to operate despite arbitrary message loss or

failure of part of the system”,也就是分布式系统在遇到某节点或网络分区故障的时候,依旧可以对外提供满足一致性和可用性的服务。

分区容错性和扩展性紧密相关。在分布式应用中,有可能会因为分布式的原因导致系统无法正常运转。好的分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。

例:

现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,或者是机器之间有网络异常,将分布式系统分隔未独立的几个部分,各个部分还能维持分布式系统的运作,这样就具有好的分区容错性。

以上就是本文的所有内容了,更多java常见问答相关知识请持续关注我们了解吧。

java cap是什么_分布式CAP是什么?它的原理是什么?相关推荐

  1. Java web小项目_个人主页(2)—— 边缘加速原理与实现

    摘自:Java web小项目_个人主页(2)-- 边缘加速原理与实现 作者:丶PURSUING 发布时间: 2021-03-27 14:44:40 网址:https://blog.csdn.net/w ...

  2. mysql用的cap中哪两个_分布式事务CAP定理和BASE理论

    课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程.对于难以理解的知识点,全部用画图+实战的方式讲解. 彻底明白事务的四个特性:原子性.一致性.隔离性.持久性,用 ...

  3. java站群系统_分布式站群系统设计与实现

    摘  要: 分析了高等院校构建网站时遇到的普遍问题,提出了文件分布存储.数据集中存储的设计思想,并且在Java EE平台上设计和实现了分布式站群管理系统,其站点分布式部署.高度的代码共享.内嵌的网页编 ...

  4. Java异构数据翻译器_分布式异构数据,distributed heterogeneous data,音标,读音,翻译,英文例句,英语词典...

    补充资料:分布式异构型计算机系统 分布式异构型计算机系统 distributed heterogeneous computer system fenbushi yigOUxing iisuQnji X ...

  5. java consul服务发现_分布式项目(七)consul 服务注册与发现

    说到分布式自然就离不开分布式和微服务的话题,简单聊一下. 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务 ...

  6. java tcc事务 例子_分布式事务之TCC事务模型

    正文 我们先套一个业务场景进去,如下图所示 那页面点了支付按钮,调用支付服务,那我们后台要实现下面三个步骤 [1] 订单服务-修改订单状态 [2] 账户服务-扣减金钱 [3] 库存服务-扣减库存 达到 ...

  7. hutool的定时任务不支持依赖注入怎么办_分布式任务调度平台xxljob的内部原理,及在转转的落地实践...

    让世界因流转更美好 值此教师节来临之际,衷心祝愿所有的老师教师节快乐,身体健康,幸福平安,工作顺利,桃李满天下.您们辛苦了! 作者简介 · 杜云杰,架构师,转转架构部负责人,负责服务治理.MQ.云平台 ...

  8. snowflake改进_分布式SnowFlakeID(雪花ID)原理、改进优化

    推荐阅读:从远程办公到简历被拒,再到斩获阿里offer,这份PDF功不可没 最近在研究分布式框架的组件和整体设计思路.所有的问题,一旦涉及分布式难度就呈几何倍数的提升.包括最常见的ID生成也是,单机情 ...

  9. java fft 频谱算法_快速傅里叶变换(FFT)算法原理及代码解析

    FFT与DFT关系: 快速傅里叶变换(Fast Fourier Transform)是离散傅里叶(DFT)变换的一种快速算法,简称FFT,通过FFT可以将一个信号从时域变换到频域:FFT(快速傅里叶变 ...

  10. cap理论具体含义_分布式事务的CAP理论

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列 ) 分布式事务「2020年」必学,升职加薪你准备好了吗? 事务的基本概念 事务的四大特性ACID 分布式事务产生的场景 前言 通过前面的学习,我 ...

最新文章

  1. asp.net input怎么获取值
  2. 助力视障人士,微软等公司捐赠首批AI有声内容
  3. 从入职到离职创业,我在谷歌、亚马逊的八年
  4. Altium Designer唤出关掉的窗口
  5. 1042: [HAOI2008]硬币购物 - BZOJ
  6. 克莱姆森大学计算机排名,克莱姆森大学计算机科学computer science专业排名第401~500名(2020THE泰晤士高等教育世界大学排名)...
  7. 工业界和学术界的思考
  8. HTTP强制设置状态码
  9. php 栏目循环,帝国CMS listshowclass循环栏目标签_PHP教程
  10. 云中漫步 - 3:2013-4-27 微软云体验营北京站
  11. 【kafka】Timeout of 60000ms expired before the position for partition could be determined
  12. win10自带的打印机服务器,win10系统开启打印机服务的操作方法
  13. java实现屏幕截图
  14. 中国雅虎殒身记:当初说好的独立上市呢?
  15. springcloud24:分布式事务 Seata处理分布式事务总结篇
  16. Google 三大论文之——MapReduce
  17. Mybatis+spring知识点
  18. LR---Loadrunner11破解方法
  19. 为什么DCIM在中国市场不给力?
  20. houdini 函数基础

热门文章

  1. 基于socket的即时通信系统的设计与实现
  2. web自动化(Python版)之百度登录
  3. 【原创】全文搜索引擎技术原理入门
  4. PMI-ACP敏捷项目认证练习题(二)
  5. egg.js+vue前后端分离项目,后端如何使用set-Cookie为前端设置cookie
  6. 使用java进行远程控制,java实现远程控制
  7. 【win10 专业版】 重装系统、激活
  8. 前端常用PS技巧总结之将图片上的LOGO(水印)去掉
  9. Memcached安全基线
  10. MaxScript分享|FBX骨架转Bip骨架脚本 动画无缝转换 (通吃Max9-2016版本)