服务启动失败_电商day3:添加分布式事务TX-LCN(搭建TX-LCN服务端和客户端、在服务使用TX-LCN)...

一、需求:

在实现商品添加功能时,由于在backend_item服务中,对三张表同时进行添加操作,即对三个对象同时进行添加。当其中一个操作失败或者是异常时,这时,虽然前端页面显示添加失败,但是后端数据库,已重复添加数据。

二、目的:

解决事务操作一致性

三、解决方案:

在上流服务和下流服务中添加分布式事务TX-LCN

4.2.10 添加分布式事务TX-LCN

4.2.10.1 搭建TX-LCN服务端

注意:在 Spring Boot2.x 版本中要求TX-LCN必须是5.0 以上

4.2.10.2 向数据库中导入SQL文件

2e3efcdb4d5cf807be66ff4794ff7f36.png

4.2.10.3 修改application.properties文件、配置TX-managerID、配置Redis地址

(Tx的服务端在哪个环境上运行就配置那个环境的IP)

ce9b89c1db09d9e60d962f1df5874ea1.png

4.2.10.4 将TX服务端上传到Linux中

b365046069d909eea3027aa44619c8a5.png

4.2.10.5 通过server.sh启动脚本启动服务端

3f94c9d41fd9783a723996417bc3a0ad.png

4.2.10.6 访问管理页面

8f1e27a2d99d397d4bd0c4b3819686e3.png

4.2.11 创建TX-LCN客户端

4.2.11.1 创建TX-LCN客户端项目

5fd1f9c06af318abc7b8163ffb9241e1.png

4.2.11.2 修改POM文件添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>bz_parent</artifactId>
        <groupId>com.bjsxt</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common_tx_manage_client</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.codingapi.txlcn</groupId>
            <artifactId>txlcn-tc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.codingapi.txlcn</groupId>
            <artifactId>txlcn-txmsg-netty</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
    </dependencies>

</project>

4.2.12 在服务中使用TX-LCN做分布式事务处理

4.2.12.1 在common_item服务中添加TX-LCN

<!--添加fe分布式事务-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_tx_manage_client</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

4.2.12.1.1 修改配置文件,添加TX-LCN服务端地址

tx-lcn:
  client:
    manager-address: 192.168.240.123:8070

4.2.12.1.2 修改启动类,开启TX-LCN

@EnableDistributedTransaction

4.2.12.1.3 在方法上添加分布式事务处理注解

@LcnTransaction

4.2.12.2 在backend_item服务中添加TX-LCN

<!--添加fe分布式事务-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_tx_manage_client</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

< ! - - mapper - - >
<dependency>
<groupId>com.bjsxt</groupId>
<artifactId>common_mapper</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

4.2.12.2.1 修改配置文件,添加TX-LCN服务端地址

tx-lcn:
  client:
    manager-address: 192.168.240.123:8070

4.2.12.2.2 修改启动类,开启TX-LCN

@EnableDistributedTransaction

4.2.12.2.3 在方法上添加分布式事务处理注解

@LcnTransaction

4.3.1测试

4.3.1.1 在服务中成功添加TX-LCN启动器详情

6921531196f04a9188cb974d26d90330.png

4.3.1.2 人为操作添加异常:在backend_item服务中修改itemDesc对象的id

0301d82e77c2c7daaad25e75884c2958.png

4.3.1.3 当再次添加重复商品描述信息对象的id时,

结果显示添加失败,数据库中无添加新数据

cf59237557da074b21e39c6375771a55.png

4.3.1.4 下流common_item服务控制台操作数据库异常信息(添加重复对象的id)

96e070c159ca496349ee3345a7569299.png

分布式事务TX-LCN添加成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值