springcloud实现分布式事务

springcloud 分布式事务

1.下载Consul 

https://www.consul.io/downloads.html

下载对应的版本

cmd切换到consul解压目录,即consul.exe目录,执行输入consul出现如下表示安装成功

cmd到consul安装目录键入命令:
consul.exe agent -dev -ui -node=cy ///可指定节点node
consul.exe agent -dev 本地模式,将会使用127.0.0.1 的ip地址

consul.exe agent -dev -client 192.168.xx.xx 远程模式
 

我这里使用的是:启动脚本:consul agent -dev -ui (dev模式)

http://localhost:8500/ui/dc1/services 查看consul信息

2.下载tx-lcn框架代码,启动txlcn-tm项目(修改数据库连接信息)

2.1创建MySQL数据库, 名称为: tx-manager

2.2创建数据表

CREATE TABLE `t_tx_exception`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `group_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `unit_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `mod_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `transaction_state` tinyint(4) NULL DEFAULT NULL,
  `registrar` tinyint(4) NULL DEFAULT NULL,
  `remark` varchar(4096) NULL DEFAULT  NULL,
  `ex_state` tinyint(4) NULL DEFAULT NULL COMMENT '0 未解决 1已解决',
  `create_time` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = 

3.http://localhost:7970/admin/index.html#/

红框里面的2是因为我已经启动了后续操作,第一次应该是0

4. 下载微服务代码

5. 启动微服务(修改对应的数据库连接,配置文件没有配置tx-tm的链接,默认会有,tm端口也是默认的端口)

1)如果不用默认的,则需要在tx-tm项目的配置文件新增配置:

#tx-lcn.logger.enabled=true
# TxManager Host Ip
tx-lcn.manager.host=127.0.0.1
# TxClient连接请求端口
tx-lcn.manager.port=8070

2)微服务中的两个配置文件新增配置:

tx-lcn.client.manager-address=127.0.0.1:8070

6.测试 http://localhost:8090/start?money=100  手动抛出了异常,a b 数据库数据回滚都为1000  说明成功!

7.微服务两个数据库信息

创建数据库bank-a和bank-b  两个数据库都创建t_bank表如下:

CREATE TABLE `t_bank` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`money` int(10) DEFAULT NULL,
`user` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
insert into t_bank(money,user) values(1000,'xiaoming');

8.经过步骤6的测试,数据库的数据还是初始的1000 说明数据已经回滚了。 (这里测试了一下,大概花了30s的时间数据库的数据进行了回滚)。

环境搭建可以参考这里

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值