文档地址:http://www.txlcn.org/zh-cn/docs/start.html

说明

TX-LCN 主要有两个模块,Tx-Client(TC) Tx-Manager™. TC作为微服务下的依赖,TM是独立的服务。
本教程带领大家了解框架的基本步骤,详细配置可参考 dubbo springcloud

一、TM配置与启动

TM的准备环境

  1. 安装TM需要依赖的中间件: JRE1.8+, Mysql5.6+, Redis3.2+

如果需要手动编译源码, 还需要Git, Maven, JDK1.8+

  1. 创建MySQL数据库, 名称为: tx-manager
  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 = Dynamic;

TM下载与配置

  1. 从历史版本TM下载找到5.0.2.RELEASE的TM, 下载.
  2. 修改配置信息
spring.application.name=tx-manager
server.port=7970spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tx-manager?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=rootmybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.use-generated-keys=true#tx-lcn.logger.enabled=true
# TxManager Host Ip
#tx-lcn.manager.host=127.0.0.1
# TxClient连接请求端口
#tx-lcn.manager.port=8070
# 心跳检测时间(ms)
#tx-lcn.manager.heart-time=15000
# 分布式事务执行总时间
#tx-lcn.manager.dtx-time=30000
#参数延迟删除时间单位ms
#tx-lcn.message.netty.attr-delay-time=10000
#tx-lcn.manager.concurrent-level=128
# 开启日志
#tx-lcn.logger.enabled=true
#logging.level.com.codingapi=debug
#redis 主机
#spring.redis.host=127.0.0.1
#redis 端口
#spring.redis.port=6379
#redis 密码
#spring.redis.password=
  • # 给出信息都是默认值
    关于详细配置说明见TM配置
  • application.properties 加载顺序如下:
    0、命令行启动参数指定
    1、file:./config/(当前jar目录下的config目录)
    2、file:./(当前jar目录)
    3、classpath:/config/(classpath下的config目录)
    4、classpath:/(classpath根目录)
    发布的二进制可执行Jar包含一个默认配置文件(也就是4),可按需要覆盖默认配置
  • 手动编译TM,简单指引
# git clone https://github.com/codingapi/tx-lcn.git & cd txlcn-tm
# mvn clean  package '-Dmaven.test.skip=true'

target文件夹下,即为TM executable jar.

二、TC微服务模块

微服务示例架构

  • 服务A作为DTX发起方,远程调用服务B

TC引入pom依赖

<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>

TC开启分布式事务注解

在主类上使用@EnableDistributedTransaction

@SpringBootApplication
@EnableDistributedTransaction
public class DemoAApplication {public static void main(String[] args) {SpringApplication.run(DemoDubboClientApplication.class, args);}}

TC微服务A业务方法配置

@Service
public class ServiceA {@Autowiredprivate ValueDao valueDao; //本地db操作@Autowiredprivate ServiceB serviceB;//远程B模块业务@LcnTransaction //分布式事务注解@Transactional //本地事务注解public String execute(String value) throws BusinessException {// step1. call remote service BString result = serviceB.rpc(value);  // (1)// step2. local store operate. DTX commit if save success, rollback if not.valueDao.save(value);  // (2)valueDao.saveBackup(value);  // (3)return result + " > " + "ok-A";}
}

TC微服务B业务方法配置

@Service
public class ServiceB {@Autowiredprivate ValueDao valueDao; //本地db操作@LcnTransaction //分布式事务注解@Transactional  //本地事务注解public String rpc(String value) throws BusinessException {valueDao.save(value);  // (4)valueDao.saveBackup(value);  // (5)return "ok-B";}
}

TC配置信息说明

# 默认之配置为TM的本机默认端口
tx-lcn.client.manager-address=127.0.0.1:8070

TX-LCN分布式事务框架开发文档相关推荐

  1. M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档

    M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档 分布式基础篇 一.环境搭建 各种开发软件的安装 虚拟机: docker,mysql,redis 主机: Maven, idea(后端),Vs ...

  2. LCN分布式事务框架实战

    本文来写个LCN分布式事务框架实战例子 文章目录 概述 概述 lcn分布式事务教程https://www.codingapi.com/docs/txlcn-preface/

  3. LCN分布式事务框架解决分布式事务一致性问题

    LCN分布式事务框架 框架介绍 LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果. 核心步骤 创建事务组 是指在事务发起方开始执行业务代码之前先调用TxMana ...

  4. php 后端 轻量 框架,GitHub - 22cloud/mixphp: 轻量 PHP 框架,基于 Swoole 的常驻内存型 PHP 高性能框架 (开发文档完善)...

    高性能 • 轻量级 • 命令行 MixPHP 是什么 MixPHP 秉承 "普及 PHP 常驻内存型解决方案,促进 PHP 往更后端发展" 的理念而创造,采用 Swoole 扩展作 ...

  5. LCN分布式事务框架

    1.LCN是什么 LCN是国产开源的分布式事务处理框架.LCN即:lock(锁定事务单元).confirm(确认事务模块状态).notify(通知事务). 官网:http://www.txlcn.or ...

  6. Admui 框架开发文档

    QQ194633530 基本概述 Admui 的追求的目标是做到开箱即用,无需了解框架内部机制,但是我们也深知一套框架不可能满足所有客户的所有需求,所以我们仍然为您准备了前端的开发文档,以满足部分客户 ...

  7. 分布式事务(二)LCN分布式事务框架

    1. 简介 LCN框架在2017年6月发布第一个版本,目前最新已经达到5.0版本. LCN早期设计时,1.0版本和2.0版本设计步骤如下: 锁定事务单元(Lock) 确认事务模块状态(Confirm) ...

  8. SpringCloud(7) LCN分布式事务框架入门

    官网:http://www.txlcn.org/ LCN原理:https://github.com/codingapi/tx-lcn/wiki/LCN%E5%8E%9F%E7%90%86 入门测试: ...

  9. SpringCloud - LCN分布式事务框架

    官网:http://www.txlcn.org/ LCN原理:https://github.com/codingapi/tx-lcn/wiki/LCN%E5%8E%9F%E7%90%86 入门测试: ...

最新文章

  1. 寒羽对帝国的理解(通向高手之路)(转)
  2. 【ArcGIS遇上Python】栅格影像批量除以10000
  3. sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs
  4. jdbc oracle 函数,Oracle系列:(33)JDBC访问Oracle的存储过程和存储函数
  5. windows测试模式
  6. 引文工具的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. 基于51单片机的指纹考勤机密码锁系统
  8. protues仿真arduino串口通讯
  9. mysql如何清空数据库表内容
  10. 由limits.h看整型范围
  11. 为何现在欠钱的人,都不爱还钱,太气人了...
  12. Fwcms模板建站常见问题整理合集解答
  13. Java毕业设计_基于javaee创新创业实验室管理系统
  14. 青海大学的计算机专业排名,青海大学王牌专业有哪些及专业排名
  15. 《windows》win10禁用默认输入法
  16. IL思路及遇到的问题、解决方法
  17. 从零入门云计算(1):云计算究竟是个啥?
  18. java实现第七届蓝桥杯交换瓶子
  19. Java将Excel文件、Word文件转为PDF
  20. 树莓派python控制gpio_树莓派的GPIO控制

热门文章

  1. 【论文解读】SIGIR 2020 | 超越用户embedding矩阵:用哈希对大型用户建模
  2. 心路历程:「双非」研究生数据分析春招
  3. 阿里巴巴版来了:“有一个程序媛女友/老婆是什么样的体验?”
  4. 免费报名丨网易、腾讯、唯品会等100位名企超资深营销增长官,约你闭门“搞事情”...
  5. linux系统自签发免费ssl证书,为nginx生成自签名ssl证书
  6. 根据多个条件删除mysql数据
  7. 了解和使用类库(47)
  8. 从传统运维到云运维演进历程之软件定义存储(五)下
  9. 二叉树的六种遍历方法汇总(转)
  10. 数据库修复Part1:创建自己的测试corrupt数据库