dubbo分布式事务LCN(v4.1.0-demo本地体验)

阅读:322
作者:majingjing
发布:2018-03-21 16:02:56

之前介绍了v3.0的demo本地运行demo。 官方已经不再维护3.0版本。

环境搭建

  • 参考网址
https://github.com/codingapi/tx-lcn
https://github.com/codingapi/dubbo-lcn-demo

前置准备工作

  • 安装redis,并启动

  • 安装eureka,并启动

  • 按照zookeeper,并启动

  • 安装mysql,并启动 执行如下脚本

DROP TABLE IF EXISTS `t_test`;

CREATE TABLE `t_test` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

服务端 tx-manager

  • 下载安装包 tx-manager.zip(地址 http://pan.baidu.com/s/1cLKAeE 此处我下载的是tx-manager-4.1.0.zip)

  • 解压tx-manager-4.1.0.zip,修改eureka和redis地址

  • 执行命令 java -jar tx-manager-4.1.0.jar

  • 浏览器访问 http://127.0.0.1:8899/index.html

1.png

客户端demo

  • 下载源代码,执行命令
git clone https://github.com/codingapi/dubbo-lcn-demo.git
git checkout v4.1.0 切记切换到 v4.1.0 分支

  • 导入项目到开发工具,我使用的是idea

  • 测试项目为dubbo-mybatis

  • 修改 transaction_mybatis_demo2

applicationContext_dubbo_provider.xml 中 zookeeper地址
db.properties 中数据库相关信息
  • 启动 com.demo.main.MyBatisDemo2

  • 修改 transaction_mybatis_demo1

applicationContext_dubbo_provider.xml 中 zookeeper地址
db.properties 中数据库相关信息
  • 将web文件夹重命名后放到src/main目录下,重新构建maven项目,再配置tomcat进行部署。

  • 启动浏览器 访问 http://localhost:18080/tmv4/save

2.png

3.png

4.png

  • 说明事务已经回滚了,数据也没有插入到数据库。

  • 修改 transaction_mybatis_demo1 项目中的 com.demo.service.impl.TestServiceImpl 注释掉 int v = 100/0; 再次启动并访问 http://localhost:18080/tmv4/save

5.png

6.png

7.png

相比3.0 ,4.0的侵入性更加的少,基本上没有,只要增加一个扫包即可完成,对老项目的集成是非常方便的。
项目源代码: https://gitee.com/majinding/JingjingMa_lcn_demo