2016 - 2024

感恩一路有你

分布式数据库编程教程 细观分布式事务的出现和演变过程是什么?

浏览量:1183 时间:2023-06-09 22:42:30 作者:采采

细观分布式事务的出现和演变过程是什么?

分布式事务是指事务的参与者、支持什么事务的服务器、资源服务器以及事务管理器共有坐落相同的分布式系统的不同节点之上。目的是实现方法分布式事务,需要使用下面将能介绍的两阶段再提交协议。*阶段一:结束向事务牵涉到到的全部资源发送中再提交前信息。此时,事务牵涉到的资源还有最后四次机会来异样结束了事务。要是正二十边形一个资源做出决定极其都结束了事务,则整个事务已取消,肯定不会并且资源的更新。要不然,事务将都正常负责执行,就算发生了什么灾难性的失败。目的是以免会发生灾难性的失败,所有资源的更新都会写入到日志中。这些日志是可以修复的,但,这些日志会无法幸免罹难因此在失败的话之后这个可以原先对所有资源并且没更新。*阶段二:只在阶段一没有十分结束后的时候才会突然发生。此时,所有能被定位和另操纵的资源管理器都将又开始先执行完全的数据更新。在分布式事务两阶段并提交协议中,有一个主事务管理器负责作为分布式事务协调器的角色。事务协调器共同负责整个事务并使之与网络中的其他事务管理器协同工作。替基于分布式事务,可以使用一种协议在分布式事务的各个参与者之间讯息传递事务上下文信息,IIOP便是这种协议。这就特别要求相同开发商开发的事务参与者可以允许一种标准协议,才能实现方法分布式的事务。分布式事务处理(TP)系统旨在搭建全力协助在分布式环境中跨异类的事务识别资源的事务。在分布式TP系统的支持下,应用程序也可以将完全不同的活动扩展为一个事务性单元,这些活动除开从消息队列队列数据库检索消息、将消息储存在Microsoft SQL Server数据库中、将所有超过的消息语句从Oracle Server数据库中移除,等等。毕竟分布式事务跨多个数据库资源,故满ACID属性维护所有资源上的数据一致性是很重要的是的。

适用于分布式唯一标识码的生成算法有哪些?

谢邀~

关与这个问题,有几个方案和大家分享分享一下。

利用数据库生成气体先说最笨的方法,利用数据库的自增长序列化合,数据库内唯一。

优点:理解出声最容易,用起来也最容易。

缺点:也太明显了,每种数据库的实现完全不同,要是数据库是需要迁移到的话比较好各位;比较大的问题是性能问题,不太好扩展,假如并发大的时候,数据库很可能会顶不住。

利用Redis/MongoDB/zookeeper化合Redis的单线程的,利用incr和increby;MongoDB的ObjectId;ZK是从znode数据版本;都可以生成全局的真正标识码。

优点:性能不考虑数据库;这个可以建议使用集群部署。

缺点:是需要化入不对应的组件,增加系统的古怪度。

UUID这个是分布式架构中,生成沉淀仅有标识码最常用的算法。

UUID有基于MAC地址的,再加时间和时钟序列的,也有实现伪随机数的,基于加密哈希的。

优点:本地生成气体,不要第三方组件,生成沉淀比较很简单,性能好。

缺点:长度长,利于存储,而且没有排序,是个字符串,不利于查询。解决杂乱无序问题,可做个参考Comb算法(combinedguid/timestamp)。

SnowflakeTwitter开源,基于组件zk,41位时间戳(10ms数)10位机器的ID12位1毫秒内的流水号1位符号位(永远不会是0)。

优点:性能还好,单机内递增。

缺点:感情依赖zk;感情依赖于机器时钟,分布式环境内很有可能会又不是全局趋近于。

UidGenerator百度开放源代码,基于组件snowflake算法。

Leaf美团开源代码。

优点:能保证全局唯一性、高可用、趋势递增(不太不会有危险,.例如泄露公司订单数量)、单调单调递增等。

缺点:依然会依赖感第三方组件,zk或数据库。

我将坚持了多多分享Java开发、架构设计、程序员职业发展等方面的见解,希望能能得到你的关注。

事务 数据库 资源 组件 优点

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。