seata 分布式事务 -- 准备工作

 

seata 分布式事务 -- 准备工作

 

环境 :

jdk:1.8

seata:1.4.0

 

seata-1.4.0\seata\conf  两个配置文件更改 :

 

1.  file.conf:

1.

    mode = "db"

2.    

    url = "jdbc:mysql://127.0.0.1:3307/seata-server?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai"

    user = "root"

    password = "root"

 

 

2.registry.conf:

1.  

   type = "eureka"

2.

 eureka {

    serviceUrl = "http://localhost:7900/eureka/"

    application = "seata-server"

    weight = "1"

  }

 

工程 :

eureka-server  注册中心 

seata-one    事务发起者

seata-two    事务参与者

seata-three  事务参与者

 

 

 

 

 

 

三个事务参与者 在 src\main\resources 下分别自定义 两个配置文件 (三个工程文件一样)

 

 

file.conf :

 

service {
#  #transaction service group mapping
#  vgroup_mapping.fbs_tx_group= "default"
#  #only support when registry.type=file, please don't set multiple addresses
#  default.grouplist = "127.0.0.1:8091"
#  #disable seata
#  disableGlobalTransaction = false

  #######
  #transaction service group mapping
  vgroup_mapping.my_tx_group="seata-server"
  #only support when registry.type=file, please don't set multiple addresses
  #disable seata
  disableGlobalTransaction = false
}

client {
  rm {
    async.commit.buffer.limit = 10000
    lock {
      retry.internal = 10
      retry.times = 30
      retry.policy.branch-rollback-on-conflict = true
    }
    report.retry.count = 5
    table.meta.check.enable = false
    report.success.enable = true
  }
  tm {
    commit.retry.count = 5
    rollback.retry.count = 5
  }
  undo {
    data.validation = true
    log.serialization = "jackson"
    log.table = "undo_log"
  }
  log {
    exceptionRate = 100
  }
  support {
    # auto proxy the DataSource bean
    spring.datasource.autoproxy = false
  }
}

 

registry.conf :

 

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "eureka"

  nacos {
    serverAddr = "localhost"
    namespace = ""
    cluster = "default"
  }
  eureka {
    serviceUrl = "http://localhost:7900/eureka/"
    # 修改点
    application = "seata-server"
    weight = "1"
  }
  redis {
    serverAddr = "localhost:6379"
    db = "0"
  }
  zk {
    cluster = "default"
    serverAddr = "127.0.0.1:2181"
    session.timeout = 6000
    connect.timeout = 2000
  }
  consul {
    cluster = "default"
    serverAddr = "127.0.0.1:8500"
  }
  etcd3 {
    cluster = "default"
    serverAddr = "http://localhost:2379"
  }
  sofa {
    serverAddr = "127.0.0.1:9603"
    application = "default"
    region = "DEFAULT_ZONE"
    datacenter = "DefaultDataCenter"
    cluster = "default"
    group = "SEATA_GROUP"
    addressWaitTime = "3000"
  }
  file {
    name = "file.conf"
  }
}

config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "file"

  nacos {
    serverAddr = "localhost"
    namespace = ""
  }
  consul {
    serverAddr = "127.0.0.1:8500"
  }
  apollo {
    app.id = "seata-server"
    apollo.meta = "http://192.168.1.204:8801"
  }
  zk {
    serverAddr = "127.0.0.1:2181"
    session.timeout = 6000
    connect.timeout = 2000
  }
  etcd3 {
    serverAddr = "http://localhost:2379"
  }
  file {
    name = "file.conf"
  }
}

 

 

每个工程对应一个数据库 ,创建好 数据表 和 undo_log 表  和 数据库: seata-server 的三表

 

 

这里的数据表结构(工程one举例:) :

 

CREATE TABLE `tbl_one` (

  `id` varchar(255) NOT NULL,

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 数据库结构:

 

posted @ 2021-05-18 16:47  Li&Fan  阅读(78)  评论(0编辑  收藏  举报