基于Hmily实现TCC分布式事务解决方案[通俗易懂]

基于Hmily实现TCC分布式事务解决方案[通俗易懂]前言在上一篇中,我们大致讲述了TCC事务的来源以及执行原理,并使用seata提供的解决方案完成了一个简单案例的整合与代码演示,本篇我们将采用Hmily的方式实现TCC事务的解决方案与演示业务描述有一个银行转账的场景,用户A需要向用户B转1块钱,如果大家使用的是同一个数据库,就不存在分布式事务的问题,现实中大家都各自使用自己的库,就产生了分布式事务可以理解为,两个账户分别在不同的银行(用户…

大家好,又见面了,我是你们的朋友全栈君。

前言

在上一篇中,我们大致讲述了TCC事务的来源以及执行原理,并使用seata提供的解决方案完成了一个简单案例的整合与代码演示,本篇我们将采用Hmily的方式实现TCC事务的解决方案与演示

业务描述

在这里插入图片描述

有一个银行转账的场景,用户A需要向用户B转1块钱,如果大家使用的是同一个数据库,就不存在分布式事务的问题,现实中大家都各自使用自己的库,就产生了分布式事务

可以理解为,两个账户分别在不同的银行(用户A在bank1、用户B在bank2),bank1、bank2是两个微服务。交易过程是,用户A给 用户B转账指定金额

对于上述交易步骤,要么一起成功,要么一起失败,必须是一个整体性事务

环境准备

  • 数据库:MySQL-5.7.25
  • 微服务:spring-boot-2.1.3
  • Hmily:hmily-springcloud.2.0.6-RELEASE

微服务及数据库的关系 :

  • transfer/transfer-bank1 银行1,操作用户A账户, 连接数据库bank1
  • trans
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143648.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • logback-spring.xml配置文件(最佳实践)

    logback-spring.xml配置文件(最佳实践)logback-spring.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><!–日志级别从低到高分为TRACE<DEBUG&l

    2022年10月29日
  • python监控网页内容变化_使用Python监控文件内容变化代码实例

    python监控网页内容变化_使用Python监控文件内容变化代码实例利用seek监控文件内容,并打印出变化内容:#/usr/bin/envpython#-*-coding=utf-8-*-pos=0whileTrue:con=open(“a.txt”)ifpos!=0:con.seek(pos,0)whileTrue:line=con.readline()ifline.strip():printline.strip()pos=p…

  • 微信小程序 宠物论坛1[通俗易懂]

    微信小程序 宠物论坛1[通俗易懂]微信小程序宠物论坛(1)一个简单的论坛包括以下几个方面:登录模块发帖模块首页模块帖子详情模块搜索模块个人主页模块下面将从这6个方面介绍如何用微信小程序开发一个简单的论坛。1、登录模块先看界面图打开小程序首先看到这个界面,之后我们点击头像便完成授权登录。JS部分//index.js//获取应用实例constapp=getApp()constdb=wx.cloud.database()Page({data:{motto:’欢迎来到宠物论坛

  • UML旅游管理系统「建议收藏」

    UML旅游管理系统「建议收藏」一、需求概述1.1项目概述随着人们的生活质量的逐步提高,外出旅游成为人们生活中不可或缺的一项活动。开发一个旅游管理系统可以为大家提供便捷的途径。系统管理员可以发布和管理旅行路线。旅客可以查询路线,预定路线。1.2用户需求分析分析的系统的参与者有系统管理员、会员、普通用户三个群体。分别对三个群体的需求进行具体分析。系统管理员:管理员作为系统的管理者。需要对线路的数据库进行管理。比如发布新的线路,对不需要的线路进行删除、修改线路的具体信息。对于已经发布的线路,系统管理员可以查看预定的情况。同

  • C语言爱心代码_c语言代码

    C语言爱心代码_c语言代码c语言-爱心代码的实现#include#include#includeintmain(){floaty,x,z,f;for(y=1.5f;y>-1.5f;y-=0.1f){for(x=-1.5f;x<1.5f;x+=0.05f){

    2022年10月13日
  • mac怎么装linux双系统_mac安装ubuntu虚拟机

    mac怎么装linux双系统_mac安装ubuntu虚拟机mac和ubuntu双系统mac系统安装ubuntu双系统的方法,mac系统要安装ubuntu,必须使用u盘作为启动盘,在mac启动的时候引导mac安装ubuntu,下面为详细的安装方法:准备:1:需要一个u盘作为引导盘;2:使用mac的磁盘管理工具,整理一块空余的逻辑磁盘;3:电脑要可以FQ;第一步:格式化u盘;第二步:第三步:下载完毕后,我们要把iso文件转化为dmg格式,执行命令…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号