zoukankan      html  css  js  c++  java
  • 分布式事务LCN使用-01

    关于分布式事务其他的就不多做介绍了、下面创建一个分布式事务的案例;

    什么是LCN?

      LCN分布式事务系统通过代理数据资源,通TxManager(事务管理器)协调来完成对事务的统⼀控制,这样的操控⽅式使得框架对业务嵌⼊性⾮常低,在对本地代理资源的同时也通过排它锁防⽌其他⼈的
    访问,从⽽也保障了事务的隔离性。
    TC:
      Transaction Client代表事务客户端,对应流程中是对事务发起⽅与事务参与⽅的泛指。
    TM:
      TransactionManager,也简称为TxManager是事务管理器。
    执行流程:
     

     按照LCN5.X的快速开始文档

    官方文档教程在这里-----------------》》》》》》》。https://www.codingapi.com/docs/txlcn-start/

    搭建TM服务

       建表

    DROP TABLE IF EXISTS `t_tx_exception`;
    CREATE TABLE `t_tx_exception`  (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `group_id` varchar(32) 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(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
      `transaction_state` tinyint(4) NULL DEFAULT NULL,
      `registrar` tinyint(4) NULL DEFAULT NULL COMMENT '-1 未知 0 Manager 通知事务失败, 1 client询问事务状态失败2 事务发起方关闭事务组失败',
      `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 = 967 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
    
    SET FOREIGN_KEY_CHECKS = 1;

    使用git拉去tc_lcn源码

    git clone https://github.com/codingapi/tx-lcn.git
    

    修改配置信息(txlcn-tmsrcmain esourcesapplication.properties)

    #给出的都是默认值

    spring.application.name=tx-manager
    server.port=7970
    
    spring.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=root
    
    mybatis.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
    #redisIp
    #spring.redis.host=127.0.0.1
    #redisu7AEFu53E3
    #spring.redis.port=6379
    #redisu5BC6u7801
    #spring.redis.password=

     启动一个redis

     文档提示为打成jar包启动,我这里修改了数据库连接之后使用idea直接启动了

  • 相关阅读:
    倒计时模块(获取的是服务器上的时间——适合购物网站的抢购模块)
    javascript 双色球选号器
    最短AJAX创建代码
    poj2387 Til the Cows Come Home
    POJ2236 Wireless Network
    HDU2102 A计划
    HDU2028 Lowest Common Multiple Plus
    HDU2612 Find a way
    HDU1495 非常可乐
    UVa10603 Fill
  • 原文地址:https://www.cnblogs.com/lewskay/p/13292907.html
Copyright © 2011-2022 走看看