springcloud分布式事务实战分布式事务综合大测试(全,共10篇)

     2022-04-17     241

关键词:

启动注册中心,启动redis ,启动事务管理器
启动mysql 启动微服务1 ,启动微服务2

(1)正常事务测试:

不抛出异常,两边都插入

1 设计没有故障整合服务
@TxTransaction(isStart=true) //关键 4

@Overridebr/>@Transactional
public int saveBlockTheme(Block block, Theme theme) {
// return blockDao.saveBlock(name, blockDesc);

    int rs1 = blockDao.saveBlock("jwg1", "111");// 3 保存1

    int rs2 = themeClient.saveTheme("jwg2", "111", 1);// 4 保存2

    // int v = 100/0; //没有故障

    return rs1 + rs2;

}

}
2 在浏览器输入:
http://localhost:8020/saveBlockTheme
结果:
技术分享图片

3 到数据库查看:
Block表
技术分享图片

Theme表
技术分享图片

两个库的表中都插入

(2)非正常事务测试
认为抛出异常,两边都不插入
1设计有故障服务
@TxTransaction(isStart=true) //关键 4

@Overridebr/>@Transactional
public int saveBlockTheme(Block block, Theme theme) {
// return blockDao.saveBlock(name, blockDesc);

    int rs1 = blockDao.saveBlock("jwg1", "111");// 3 保存1

    int rs2 = themeClient.saveTheme("jwg2", "111", 1);// 4 保存2

     int v = 100/0; //故障

    return rs1 + rs2;

}

}
2 在浏览器输入:
http://localhost:8020/saveBlockTheme
技术分享图片
3 去数据库查看
Block表
技术分享图片
没有记录

Theme表
技术分享图片技术分享图片

没有记录,说明回滚成功

总结:
通过10篇文章的论述,成功实现了基于springcloud分布式微服务的分布式事务管理设计,实现和测试。希望在黑暗中摸索的同学有些帮助。



springcloud分布式事务实战改造合服务blockmicroservice支持分布式事务

在BlockMicroService工程中加入(1)加入jar<!--springCloud事务关键点1--><dependency><groupId>com.codingapi</groupId><artifactId>transaction-springcloud</artifactId><version>${ 查看详情

springcloud分布式事务实战案例需求及实现步骤

...来说明如何使用分布式事务 案例需求:创建2个基于springCloud的微服务,分别访问不同的数据库;然后创建一个整合服务,调用微服务实现数据的保存到2个不同的数据库,要求采用分布式事务,要么都成功,要么都失败。案... 查看详情

springcloud分布式事务实战案例需求及实现步骤

...案例来说明如何使用分布式事务案例需求:创建2个基于springCloud的微服务,分别访问不同的数据库;然后创建一个整合服务,调用微服务实现数据的保存到2个不同的数据库,要求采用分布式事务,要么都成功,要么都失败。案... 查看详情

springcloud分布式事务实战分布式事务处理器的下载,编译和运行

(1)下载分布式事务处理器工程源码https://github.com/codingapi/tx-lcn/(2)导入eclipse(3)修改配置文件填写分布式事务服务器地址,redis地址,注册中心地址#服务端口server.port=7000#tx-manager不得修改spring.application.name=tx-managerspring.mvc.st... 查看详情

springcloud分布式事务实战分布式事务处理器的编译和运行之redis安装

一、分布式事务处理器的编译和运行1)Redis的安装和启动(1)下载redis解压缩(2)启动和测试redis1进入redis目录2双击redis-server.exe程序即可启动3启动客户端测试双击redis-cli.exe输入 查看详情

springcloud分布式事务实战编写第二个微服务(代码片段)

(1)创建工程(2)添加jarpom.xml添加:springboot父,mysql连接,(mybatis,spring-mybatisspringboot,阿里连接池),服务中心客户端。<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSc 查看详情

springcloud分布式事务实战在微服务1中创建整合函数,调用微服务2

(1)添加jarpom.xml<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency>(2)在主程序中添加注解@EnableFeignClien 查看详情

springcloud分布式事务实战准备数据库和创建第一个微服务(代码片段)

1)数据库准备在数据库中mysql分别创建2个数据库forum1和forum2forum1下创建表blockforum2下创建表Themesql代码如下:1数据库1Forum1:CREATEDATABASEIFNOTEXISTSforum1;USEforum1;DROPTABLEIFEXISTSblock;CREATETABLEblock(idint(11)NOTNULLAUTO_INCREMEN 查看详情

springcloud分布式事务管理

SpringCloud分布式事务管理在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. SpringCloud分布式事务管理单体式架构微服务架... 查看详情

springcloud(12)—分布式事务(seata)(代码片段)

SpringCloud(12)—分布式事务(Seata)一事务基础1.事务的ACID原则2.分布式事务问题在分布式系统下,一个业务跨越多个服务或数据源,每一个服务都是一个事务。要保证所有分支事务的最终状态一致,... 查看详情

分布式事务一致性,事务补偿实战

 一、事务记录补偿表设计  三、业务补偿函数 @Overridepublicvoidcompensation(BidPaymentDetailConfirmRecordconfirmRecord,ProviderUserSessionuserSession)throwsException{Longtype=confirmRecord.getBusinessT 查看详情

微服务框架springcloud之使用事件和消息队列实现分布式事务

不同于单一架构应用(Monolith),分布式环境下,进行事务操作将变得困难,因为分布式环境通常会有多个数据源,只用本地数据库事务难以保证多个数据源数据的一致性.这种情况下,可以使用两阶段或者三阶段提交协议来完成分布式事... 查看详情

90springcloud解决分布式事务--lcn解决分布式事务

参考技术A1,分布式事务产生的背景。分情况而定1,在单体的项目中,多个不同的业务逻辑都是在同一个数据源中实现事务管理,是不存在分布式事务的问题,因为同一个数据源的情况都是采用事务管理器,相当于每个事务管理... 查看详情

86springcloud解决分布式事务

参考技术A1,分布式事务产生的背景;分情况而定。1,在单体项目中,多个不同的业务逻辑都是在同一个数据源中心实现事务管理,是不存在分布式事务的问题。因为在同一个数据源的情况下都是采用事务管理器,相当于每个事... 查看详情

分布式事务开山之作——《深入理解分布式事务:原理与实战》草图曝光!!(代码片段)

...们就暂时不聊【精通高并发系列】了,今天插播一下分布式事务,为啥?因为冰河联合猫大人共同创作的分布式事务领域的开山之作——《深入理解分布式事务:原理与实战》一书正式出版了,于2021年10月20日... 查看详情

jta分布式事务实战

spring3.0  分布式事务 jta atomikos1.使用如下jar包atomikos-util.3.7.0.jarcglib-nodep-2.2.2.jartransactions-3.7.0.jartransactions-api-3.7.0.jartransactions-jdbc-3.7.0.jartransactions-jta-3.7.0 查看详情

springcloud微服务之间feign接口调用,是怎么实现分布式事物的

参考技术Afeign没有实现分布式事务,feign实现了负载均衡。在微服务架构中,实现分布式事务有这么几种解决方案:1、两阶段提交(2PC)/三阶段提交(3PC)2、补偿事务(TCC)3、本地消息表(异步确保)4、MQ事务消息基于以上几种... 查看详情

springcloud分布式事务管理

在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. 在说微服务的优缺点时,有对比才会更加明显,首先说一下单体式结... 查看详情