代码编织梦想

TCC Demo 代码实现-爱代码爱编程

TCC Demo 代码实现 简介     设计实现一个 TCC 分布式事务框架的简单 Demo,实现事务管理器,不需要实现全局事务的持久化和恢复、高可用等 工程运行 工程地址:TCCDemo    需要MySQL数据库,保存全局事务信息,相关TCC步骤都会打印在控制台上 1:启动MySQL,创建一个数据库 test2.运行当前工程的:TccDem

海量数据架构下如何保证Mycat的高可用?-爱代码爱编程

写在前面 在《冰河,能讲讲Mycat如何实现MySQL的读写分离吗?》一文中,我们实现了使用Mycat实现MySQL的读写分离。然而,此时的Mycat只有一个节点,如果Mycat节点宕机了,则整个MySQL集群将不可用,所以,我们有必要保证Mycat节点的高可用。那如何保证Mycat节点的高可用呢?今天,我们就一起来聊聊这个话题。一起搭建一套Myc

分布式事务:XA的概念-爱代码爱编程

XA(分布式事务)规范主要定义了(全局)事务管理器(TM: Transaction Manager)和(局部)资源管理器(RM: Resource Manager)之间的接口。 XA为了实现分布式事务,将事务的提交分成了两个阶段:也就是2PC (tow phase commit),XA协议就是通过将事务的提交分为两个阶段来实现分布式事务。 两阶段 1

ShardingSphere RAW JDBC 分布式事务 Narayana XA 代码示例-爱代码爱编程

ShardingSphere RAW JDBC 分布式事务 Narayana XA 代码示例 项目工程在:transaction-2pc-narayana-xa-raw-jdbc-example 代码简介     基于ShardingSphere的 Narayana XA实现一个简单的分布式事务应用demo 环境配置     启动两个MySQL5

分布式事务解决方案-爱代码爱编程

分布式事务解决方案 分布式的特点:分布性、对等性、并发性、缺乏全局时钟、故障总会发生 分布式环境下的各种问题:通讯异常、网络分区、成功失败超时三态、节点故障 CAP 在当前的软件架构模式下,有状态服务部署(分布式部署模式下),无法同时保证可用性和一致性,必有取舍。 如果追求数据一致性:可以让数据完成后大家再去读取,损失一部分性能换取一致性。如果追求

ShardingSphere RAW JDBC 分布式事务XA 代码示例-爱代码爱编程

ShardingSphere RAW JDBC 分布式事务XA 代码示例 项目工程在:transaction-2pc-xa-raw-jdbc-example 代码简介     基于ShardingSphere的Atomikos XA实现一个简单的分布式事务应用demo 环境配置     启动两个MySQL5.7的docker镜像(8.0的一直报事

分布式事务及其CAP和base理论-爱代码爱编程

分布式事务的概念 首先来说一下本地事务,它是指我们单体应用单个数据库中的事务,在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,所以基于关系型数据库的事务又被称为本地事务。相对于本地事务来说,分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服

分布式事务大总结-爱代码爱编程

目录 1、事务模式 1.1、局部事务(对应JDBC事务) 1.2、全局事务(对应JTA事务) 1.3、分布式事务 2、分布式事务解决模式 2.1 两阶段提交(2PC) 2.2 TCC 2.3 本地消息表-ebay模式 2.4 最大努力通知 2.5 事务消息 3、分布式事务开源框架 3.1 Seata 3.2 RocketMQ事务消

RabbitMQ如何保证幂等性-爱代码爱编程

幂等性是分布式系统设计中的一个重要概念,是在做系统或者接口设计时要着重考虑的问题,尤其像支付宝、银行、互联网金融等涉及钱的系统,既要高效,数据也要准确,绝对不能出现多扣款,多打款等问题,幂等性的设计就显得更为重要了。 本文我们就先来解释一下什么是幂等性?然后再看一下在MQ中怎么保证幂等性? 一、什么是幂等? 幂等性的实质是:对于一个资源,不管你请求一

基于RocketMQ的分布式事务解决方案-爱代码爱编程

前言 在系统变的复杂后,分布式、微服务等架构技术,就要考虑到应用在系统中了。尤其数据量大了后,就需要对数据库进行拆分。 如:注册的用户数据,量大了后,就需要考虑分库分表 一旦数据库进行了分拆,那就出现很多头疼的问题,其中之一就是事务问题。那我们就来看看问题是怎么出现的? 场景     先来上个图 进行数据拆分后,就类似上面的架

开源的分布式事务解决方案-Seata-爱代码爱编程

Seata 是什么? (1)Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 (2)在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双11,对各BU业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿里云、金融

开源的分布式事务-Seata的设计原理-爱代码爱编程

前言 在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中

09--seata搭建 AT模式 及 springcloudAlibaba集成seata-爱代码爱编程

seata官方文档 下载seata镜像docker pull seataio/seata-server 创建宿主机映射目录及文件mkdir /mnt/seata/config mkdir registry vim registry.conf registry.conf 配置(使用nacos做为配置,并将seata注册至nacos)registry

分布式事务-爱代码爱编程

分布式事务的目标:保证操作在分布式环境中的事务特性。(如保证操作在多个节点都成功或失败回滚。如:订单系统的消息在库存系统、支付系统、通知系统都被消费。) 一、两阶段提交(Precommit、Commit,2PC) 两个阶段的提交,包括Precommit(预提交)、Commit(提交) 各节点准备提交,都返回YES后进行提交。 两阶段提交(Two-p

分布式事务2PC、3PC、TCC、RocketMQ事务消息方案详解与对比(详细图解)-爱代码爱编程

这篇文章将介绍分布式事务中的多种实现方案,及各种分布式事务方案的实现原理、事务执行过程、优缺点,读完这篇文章相信你会对2PC、3PC、TCC、MQ事务消息有个详细的了解 分布式事务的处理方法有哪些? XA协议:基于分布式事务协议,主要由事务管理器和本地资源管理器组成,事务管理器是一个全局调度者,负责本地资源管理器统一的提交或回滚事务。m

分布式事务解决方案——最大努力通知以及解决方案-爱代码爱编程

什么是最大努力通知 分布式系统中,服务之间的互相调用有时候在某些业务场景下,被调用者需要将业务处理结果再通知到调用者,调用者才能继续完成后续的业务操作,在这种场景下要保证业务的连续性、完整性、最终一致性等,就需要消息通知的可靠性至关重要。结合以上的分析,最大努力通知就是服务间的消息通知,要尽可能的设计和使用某些策略手段,达到最接近100%的通知成功率。

一个计费系统的研究-爱代码爱编程

文章目录 需求外部约束思考计费时机服务前服务后服务中预扣费计费与业务的分离与一致职责分离monolithChoreographyOrchestration总结事务设计balanceChargeEventFlowchartbeforeafter再论分布式事务CAP2PC的视角Saga视角补充 需求 一个ToB的SaaS系统,企业先充值,然后用户

分布式事务解决方案——可靠消息最终一致性(本地消息表、MQ自身提供的可靠性保证)-爱代码爱编程

什么是可靠消息最终一致性 指的是当事务发起方执行完成本地事务后并发送一条消息,事务参与方(消息的消费者)一定可以收到该消息,并完成接下来的业务处理,保证事务的成功。在此方案中,强调的是最终一致性,这就要保证发送的消息是一定能被事务参与者接收到的。 完成消息通知是需要使用消息中间件:MQ 事务发起方执行业务开启事务,发送消息到消息中间件事务参与者监

分布式事务TCC方案Hmily——springcloud + feign + mybatis-爱代码爱编程

TCC理论:分布式事务基础理论——TCC Hmily介绍:分布式事务TCC方案——Hmily金融级柔性分布式事务解决方案介绍 本文demo代码:GitHub 依赖 <dependency> <groupId>org.dromara</groupId>

分布式事务 各种模式解释[粗略]-爱代码爱编程

文章目录 TCC (Try-Confirm-Cancel) 模式Try 尝试阶段Confirm 确认阶段Cancel 撤销阶段SAGA模式Seata AT 模式两段提交角色事务协调者事务参与者事务执行的流程准备阶段提交阶段三段提交CanCommit阶段 询问阶段PreCommit阶段 准备提交阶段doCommit阶段 事务提交阶段三段提交和二段提交