分布式进阶__分布式相关基础理论 CAP BASE

分布式环境下面临的问题:

网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题

三态:分布式架构里面,除了成功、失败、超时

分布式事务 :ACID特性

中心化和去中心化:冷备或者热备

经典的CAP/BASE理论

CAP C(一致性 Consistency): 所有节点上的数据,时刻保持一致 A可用性(Availability):每个请求都能够收到一个响应,无论响应成功或者失败 P分区容错 (Partition-tolerance):表示系统出现脑裂以后,可能导致某些server与集群中的其他机器失去联系

分布式系统因为网络的存在,必须存在P,所以我们的选择经常是牺牲掉C 或者牺牲掉A。于是就有了:CP / AP

CAP理论仅适用于原子读写的Nosql场景,不适用于数据库系统

BASE 基于CAP理论,CAP理论并不适用于数据库事务(因为更新一些错误的数据而导致数据出现紊乱,无论什么样的数据库高可用方案都是 徒劳) ,虽然XA事务可以保证数据库在分布式系统下的ACID特性,但是会带来性能方面的影响;

eBay尝试了一种完全不同的套路,放宽了对事务ACID的要求。提出了BASE理论 Basically available (基本可用): 数据库采用分片模式, 把100W的用户数据分布在5个实例上。如果破坏了其中一个实例,仍然可以保证 80%的用户可用

soft-state(软状态): 在基于client-server模式的系统中,server端是否有状态,决定了系统是否具备良好的水平扩展、负载均衡、故障恢复等特性。 Server端承诺会维护client端状态数据,这个状态仅仅维持一小段时间, 这段时间以后,server端就会丢弃这个状态,恢复正常状态

Eventually consistent:数据的最终一致性

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一场梦

自适应个人主页html源码

87630
来自专栏java一日一条

这十二行代码是如何让浏览器爆炸的?

今天刷推特的时候发现 Cyber Security@cyber__sec 的推文让人眼前一亮:

8720
来自专栏顾宇的研习笔记

AWS 上的生产环境性能分析案例

案例是一个泰国网站的生产环境(请脑补一句“萨瓦迪卡”,为了叙述方便,下文中均以"萨瓦迪卡"指代这个网站。)“萨瓦迪卡”是一个 采用 Wordpress + My...

13730
来自专栏.NET技术

正确理解CAP定理

  CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析。因此自己参考部分资...

13920
来自专栏小狼的世界

SRE学习笔记:分布式共识系统、Paxos协议

日常工作中,我们经常需要一些服务分布式的运行。跨区域如跨城、跨洲部署运行分布式系统往往是容易的,但是如何保证各系统间状态的一致是困难的。如何保证服务的高可靠、高...

10510
来自专栏DeveWork

WordPress中添加自定义评论表情包的方法(附三套表情包下载)

如果你知道的话,WordPress中的默认评论表情是非常丑陋的。难听点,如果一个不错的主题调用的是WordPress默认的表情包,那么这就成了这个主题的败笔。J...

297100
来自专栏编程一生

服务设计要解决的问题

  “业务的服务(相对于我们基础架构这边的底层技术)在技术上就需要解决三个问题:分布式、通信和存储。”

9810
来自专栏Java后端技术

解决Redisson出现Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'create' threw e

  最近项目中使用了redisson的哨兵模式来作为redis操作的客户端,然后一个意外出现了,启动报:Failed to instantiate [org.r...

14110
来自专栏FreeBuf

FireEye:Hacking Team军火库中大量运用iOS假面攻击

在早前我们就已经发布过有关iOS假面攻击威胁的文章。到目前为止,这类攻击依旧十分流行。FireEye最近从HackingTeam军火库中发现11款iOS App...

22050
来自专栏ThoughtWorks

浅谈微服务基建的逻辑 | 洞见

这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。 起点 首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视...

36850

扫码关注云+社区

领取腾讯云代金券