搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 丰博源 > mq探索--什么是分布式事务CAP

mq探索--什么是分布式事务CAP

丰博源 2018-03-01

先来看一下mq分布式一些概念,当前主流的mq基本都做到了高可用,用的都是分布式技术,分布式中的cap概念必须要先理解。


      第一个c指的是是一致性,在分布式系统中一致性指的是在不同节点中的数据保值一致。在分布式系统中一致性的概念分为强一致性和弱一致性,保值弱一致性方式很多而且具体情况具体分析,保值强一致性大概只有三种方式,一个由写实现一致性,写的时候复制到所有节点,并且需要同步锁才能保障。第二种是读实现一致性,读的时候由版本控制做各个节点之间的同步,第三种是仲裁实现,写的时候复制2/3的机器,读的时候读2/3并确认哪个是最新版本,注意区分分布式事务的一致性。


      第二是可用性,可用性又可以细分为写可用和读可用。在分布式环境中,往往指的是系统在确定时间内可返回读写操作结果,也即读写均可用。


      第三个是分区容忍性,一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。


      提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。通常优先保证可用性。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《mq探索--什么是分布式事务CAP》的版权归原作者「丰博源」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注丰博源微信公众号

丰博源微信公众号:gh_f1cefc29f829

丰博源

手机扫描上方二维码即可关注丰博源微信公众号

丰博源最新文章

精品公众号随机推荐

上一篇 >>

Day24_函数式接口