我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019年全年资料内部公开36码 > 强一致性 >

ShardingSphere x Seata一致性更强的分布式数据库中间件

归档日期:07-24       文本归类:强一致性      文章编辑:爱尚语录

  数据库领域,分布式事务的实现主要包含:两阶段的 XA 和 BASE 柔性事务。

  XA 事务底层,依赖于具体的数据库厂商对 XA 两阶段提交协议的支持。通常,XA 协议通过在 Prepare 和 Commit 阶段进行 2PL(2 阶段锁),保证了分布式事务的 ACID,适用于短事务及非云化环境(云化环境下一次 IO 操作大概需要 20ms,两阶段锁会锁住资源长达 40ms,因此热点行上的事务的 TPS 会降到25/s 左右,非云化环境通常一次 IO 只需几毫秒,因此锁热点数据的时间相对较低)。

  但在 BASE 柔性事务方面,ShardingSphere 提供的接入分布式事务的 SPI,只适用于对性能要求较高,对一致性要求比较低的业务。

  Seata 核心的 AT 模式适用于构建于支持本地 ACID 事务的关系型数据库。通过整合Seata,其AT模式在一阶段提交+补偿的基础上,通过 TC 的全局锁实现了 RC 隔离级别的支持,可提高ShardingSphere的分布式事务的一致性。

  在 Seata 模型中,全局事务的上下文存放在线程变量中,通过扩展服务间的  transport,可以完成线程变量的传递,分支事务通过线程变量判断是否加入到整个 Seata 全局事务中。而 ShardingSphere 的分片执行引擎通常是按多线程执行,因此整合 Seata AT 事务时,需要扩展主线程和子线程的事务上下文传递,这同服务间的上下文传递思路完全相同。

  ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(计划中)这 3 款相互独立的产品组成,提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、容器、云原生等各种多样化的应用场景。目前,已经拥有超过 8000 的 Star,57 位 Contributors。

  Seata 是阿里巴巴和蚂蚁金服共同开源的分布式事务中间件,融合了双方在分布式事务技术上的积累,并沉淀了新零售、云计算和新金融等场景下丰富的实践经验,以高效并且对业务 0 侵入的方式,解决微服务场景下面临的分布式事务问题。目前,已经拥有超过 9900 的 Star,83 位 Contributors。

  对于单机系统和集中系统是指一台或多台主计算机组成的中心节点,并数据和业务处理逻辑都集中于这个中心节点上,客户端仅仅负责数据的录入和展示。集中式系统的最大优点就是部署简单,同时不需要考虑分布式系统的协作...博文来自:CWeeYii的专栏

  概述由于微服务架构大行其道,分布式通信几何级增加,必然带来一致性问题,也就是说,以前你遇到不一致的概率可能是100年1次,现在可能是1年1次,甚至1天1次。微服务架构的前期,大多数开发者只关注拆分,选...博文来自:王启军

  进入云计算时代,传统的数据库在性能和容量等方面已无法满足企业的要求,随着数据量的不断骤增,易于扩展、拆分的数据库解决方案对于企业的云化转型更是显得尤为重要。为使企业应用上云更简单,分布式数据库中间件D...博文来自:middleware2018的博客

  各种形态的分布式事务分布式事务有多种主流形态,包括:基于消息实现的分布式事务基于补偿实现的分布式事务基于TCC实现的分布式事务基于SAGA实现的分布式事务基于2PC实现的分布式事务这些形态的原理已经在...博文来自:skyesx的专栏

  1.背景Seata是阿里开源的一款高性能分布式事务解决方案,在2019年1月初阿里分布式事务框架GTS开源了一个免费社区版Fescar,也就是说在阿里内部叫GTS,后面开源版本叫Fescar,后面再改...博文来自:zhuyu

  摘要:目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。 分布式数据库中间件对比总结(1)目前数...博文来自:da sheng 的专栏

  背景在分布式系统中,分布式事务是一个必须要解决的问题,目前使用较多的是最终一致性方案。自年初阿里开源了Fescar(目前更名为Seata)后,该项目受到了极大的关注度。Seata以高性能和零侵入的方式...博文来自:小方的专栏

  seata服务的客户端的下载地址选择一个自己需要的版本源码地址:博文来自:tom有cat

  中间件Mycat-数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件http...博文来自:零零喵的博客

  在传统的单机体系中,我们在操作数据库时,只需要直接得到数据库的连接,然后操作数据库即可,可是在现在的数据爆炸时代,只靠单机是无法承载如此大的用户量的,即我们不能纵向扩展,那么我们就只能水平进行扩展,即...博文来自:HappyHeng的博客

  对比LCN和saga(华为apache孵化器项目),LCN使用代理连接池封装补偿方法,saga需要手工写补偿方法,相对来说LCN使用更加方便。参考官方地址:博文来自:baidu_36415076的博客

  本文的原文连接是:未经博主允许不得转载。博主地址是:博文来自:freewebsys的专栏

  在上一节 从零开发分布式数据库中间件一、读写分离的数据库中间件 中,我们讲了如何通过ThreadLocal来指定每次访问的数据源,并通过jdbc的连接方式来切换数据源,那么这一节我们使用我们常用的数据...博文来自:HappyHeng的博客

  随着业务的快速发展,应用单体架构暴露出代码可维护性差、容错率低、测试难度大和敏捷交付能力差等诸多问题,微服务应运而生。微服务的诞生一方面解决了上述问题,但是另一方面却引入新的问题,其中主要问题之一就是...博文来自:阿里云云栖社区

  这张图是从官网上下载下来的,说明:对于sql的执行,在执行前记录日志,如果执行成功,把日志删除,如果执行失败,重试一定次数(如果未达到最大尝试次数便执行成功了,一样删除日志)。 异步任务不断扫描执行...博文来自:sharedCode源码交流

  官网资料MyCat官网:权威指南:下载地址:htt...博文来自:徐刘根的博客

  什么也不说了直接上代码feign方式方式博文来自:sly1311220942的博客

  分布式系统中的一致性协议之两阶段提交协议(2PC)     两阶段提交协议是很常见的解决分布式事务的方式,他可以保证分布式事务中,要么所有参与的进程都提交事务成功,要么都取消事务,这样做可以在分布式环...博文来自:chenglinhust的专栏

  放便实现缓存的分布式,集群,负载均衡,故障自动转移,并兼容多种缓存存储的.net分布式缓存中间件。...博文来自:fengyeguigui的博客

  SpringCloud使用Seata实现分布式事务,Nacos作为Seata配置中心使用Seata作为分布式事务组件,配置中心和注册中心使用Nacos,使用MySQL数据库和MyBatis,同时使用N...博文来自:咚咚锵的记事本

  简述这里的Consistency(一致性)是指分布式系统中的数据一致性,而非数据库事务ACID特性中的Consistency。CAPCAP(或称布鲁尔定理)指出一个分布式计算系统不可能同时满足以下三点...博文来自:Just do it!

  今天在看书的时候,看到了分布式事务的一致性问题,就赶紧记下来。一、分布式事务介绍在我们平时写的代码中,我们可以用一个事务包含许多个SQL调用,如果某一个数据库操作发生异常,就可以将之前的SQL操纵全部...博文来自:yanghan1222的博客

  文章目录三个场景火车站售票银行转账网上购物对上述三个场景进行抽象进一步抽象:一致性级别三个场景火车站售票无论在哪个售票窗口,每时每刻的余票都必须是准确无误的。银行转账实时扣除的账户金额,到另一个账户上...博文来自:chao2016的博客

  多副本一致性主从同步方式主从异步方式Oracle中的应用CAP理论多副本一致性这是分布式一致性算法的一个典型应用场景。在分布式存储系统中经常使用多副本的方式实现容错,这样部分副本的失效不会导致数据的丢...博文来自:chao2016的博客

  下面是一个订单系统向支付系统发送请求的一个场景:这是一个极具代表性的例子,用户提交一次请求,订单系统向支付系统发出支付请求并处理回执。通常在开发这种订单交易系统的时候,会遇到几种常见的问题,下面是个人...博文来自:onlyyjco的专栏

  拜占庭将军问题LeslieLamport在三十多年前发表的论文《拜占庭将军问题》(参考[1])。拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因...博文来自:Kuzury

  分布式服务下的交易一致性解决方案银行很强势,我们什么都不管(1.调一次,我出款一次;2.不提交任何冥等操作)我们什么都没有(没有分布式事务)用户只提交一次我们只能成功一次一、远程调用与本地事务区分开(...博文来自:昨天

  区块链共识算法可以根据其容错类型、部署方式和一致性程度等多个维度加以分类。例如,根据容错类型,可以将区块链共识算法分为拜占庭容错和非拜占庭容错两类;根据部署方式,可以将区块链共识算法分为公有链共识、联...博文来自:weixin_33696822的博客

  背景在一个分布式系统中,如何保证集群中所有节点中的数据完全相同并且能够对某个提案(Proposal)达成一致是分布式系统正常工作的核心问题,而共识算法就是用来保证分布式系统一致性的方法。然而分布式系统...博文来自:niyuelin1990的博客

  实践证明,在分布式系统,同时满足CAP定律(一致性、可用性、分区容错性)是不太可能的。虽然强一致性可以提高用户的体验,但是牺牲了系统的可用性,在经过综合的考虑和验证下,业界普遍的做法是在一致性和可用性...博文来自:harry1986601的专栏

  数据库包含1:会员库(会员数据,优惠券数据)2:商品库(商品数据,库存数据)3:订单库(订单表、订单明细表,下单事件表)订单系统下单处理流程1:用户提交订单前先检测资源可用性(库存,账户余额,优惠券等...博文来自:test1444509256的博客

  该文章来自于阿里巴巴技术协会(ATA)精选文章。背景可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系...博文来自:yizich的专栏

  分布式系统基本概念异常类型1服务器down机(随时发生、内存数据丢失(因此需要考虑数据持久化)、down机重启之后要恢复内存信息)2网络异常(消息丢失、消息乱序(UDP)或者网络包数据错误、区域内可通...博文来自:qq100440110的专栏

  “什么是分布式系统?这取决于看系统的角度。对于坐在键盘前使用IBM个人电脑的人来说,电脑不是一个分布式的系统。但对于在电脑主板上趴着的虫子来说,这台电脑就是一个分布式系统。”——LeslieLampo...博文来自:java技术交流

本文链接:http://ravynhart.com/qiangyizhixing/386.html