首页 > 其他分享 >seata学习AT模式

seata学习AT模式

时间:2023-04-07 12:56:19浏览次数:46  
标签:COMMENT group seata db nacos 模式 学习 store

注意点


这里版本

seata 1.4.2 (启动直接bin目录下面bat文件启动)

数据库代理

  • enable-auto-data-source-proxy这个配置默认开启(默认开启,配置相关配置就可以使用seata了),切换其他的可以自己配置。



版本问题


官网参考

image-20230407115936018



具体教程



1.背景介绍

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案,本文将介绍快速整合seata+nacos+mysql模式


img


image-20230407115522539

官方地址:https://seata.io/zh-cn/docs/overview/what-is-seata.html



2.搭建Server端

下载服务端:https://github.com/seata/seata/releases


img



2.1搭建seata数据库

  • 查看sql文件



2.2 服务端配置上传nacos

connfig-center:https://github.com/seata/seata/tree/1.4.2/script/config-center

修改后congfig.txt

service.vgroupMapping.seata-ok-group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=username
store.db.password=password
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000

新增seataServer.properties 配置



image-20230407124035424



2.3 registry.conf

修改服务registry.conf 配置文件,注意group,cluster,dataId参数配置~



image-20230407124051038



registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = "nacos"
    password = "nacos"
  }
}
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = ""
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
    dataId = "seataServer.properties"
  }
}



2.4 启动


image-20230407124014701



3.Clien端整合



3.1 新增undo_log表

参与全局事务的服务数据库中加入undo_log这张表

-- for AT mode you must to init this sql for you business database. the seata server not need it.
CREATE TABLE IF NOT EXISTS `undo_log`
(
    `branch_id`     BIGINT       NOT NULL COMMENT 'branch transaction id',
    `xid`           VARCHAR(128) NOT NULL COMMENT 'global transaction id',
    `context`       VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
    `rollback_info` LONGBLOB     NOT NULL COMMENT 'rollback info',
    `log_status`    INT(11)      NOT NULL COMMENT '0:normal status,1:defense status',
    `log_created`   DATETIME(6)  NOT NULL COMMENT 'create datetime',
    `log_modified`  DATETIME(6)  NOT NULL COMMENT 'modify datetime',
    UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 1
  DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';



3.2 pom

对应服务的pom文件引入seata依赖

<dependency>
     <groupId>io.seata</groupId>
     <artifactId>seata-spring-boot-starter</artifactId>
     <version>1.4.2</version>
</dependency>
<dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
       <version>2.2.1.RELEASE</version>
       <exclusions>
            <exclusion>
               <groupId>io.seata</groupId>
                <artifactId>seata-spring-boot-starter</artifactId>
            </exclusion>
        </exclusions>
</dependency>



3.3 yml

官方参考:https://github.com/seata/seata/blob/1.4.2/script/client/spring/application.yml 直接去掉一些不相关的即可

注意修改 application-id 和 tx-service-group

image-20230407114915764


seata:
  enabled: true
  application-id: applicationName
  tx-service-group: seata-ok-group
  enable-auto-data-source-proxy: true
  data-source-proxy-mode: AT
  config:
    type: nacos
    nacos:
      namespace: ""
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      username: "nacos"
      password: "nacos"
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group : "SEATA_GROUP"
      namespace: ""
      username: "nacos"
      password: "nacos"

标签:COMMENT,group,seata,db,nacos,模式,学习,store
From: https://www.cnblogs.com/rain-me/p/17295798.html

相关文章

  • 从零学习SDK(3)如何安装和配置SDK
    摘要本文介绍了如何在Android和iOS两个系统上来安装和配置SDK。SDK是软件开发工具包,它提供了一些预定义的函数、接口、文档、示例和工具,让开发者可以使用某种服务或功能。安装和配置SDK时要根据开发目标和环境来选择合适的SDK,并根据文档或示例来设置参数和选项,并测试其功能是否正常......
  • Vue3.0学习二
    组合式API:setup在beforecreate之前就执行了。import{ ref,toRefs, toRef,h}from'vue'export  default {props:{name:{type:String}},//setup中使用props中的数据setup(props,context){//propsconsole.log(prop......
  • docker 学习1
    1.下载地址:https://www.docker.com/2.安装:根据电脑选择不同版本3.注册docker账号4.设置token:文档https://docs.docker.com/docker-hub/access-tokens/5.设置镜像加速:mac为例:setting->dockerEngin->添加"registry......
  • hadoop学习记录
    Hadoop简介安装狭义上Hadoop指的是Apache软件基金会的一款开源软件用java语言实现,开源允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理Hadoop核心组件HadoopHDFS(分布式文件存储系统):解决海量数据存储HadoopYARN(集群资源管理和任务调度框架):解决资源任......
  • 迁移学习《Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptatio
    论文信息论文标题:EfficientandRobustPseudo-LabelingforUnsupervisedDomainAdaptation论文作者:HochangRhee、NamIkCho论文来源:2019——ICML论文地址:download 论文代码:download视屏讲解:click1摘要问题:无监督域适应传统方法将超过一定置信度阈值的数据视为目标域......
  • ORM相关学习记录
    1.orm项目1.1安装ormpipinstallmysqlclient如果windows安装报错后,使用whl安装下载地址:https://pypi.org/project/mysqlclient/#files找到对应python版本的wheel包,然后进行安装,可把包放到scripts目录中执行:pip3.7installmysqlclient-2.1.0-cp37-cp37m-win_amd64.whl1.2......
  • OpenAI Python API 训练营:学习使用 AI、GPT3 等!
    OpenAIPythonAPI训练营:学习使用AI、GPT3等!使用OpenAI强大的API在项目中生成文本和图像,探索人工智能的力量课程英文名:OpenAIPythonAPIBootcampLearntouseAI,GPT3,andmore!此视频教程共3.24GB,中英双语字幕,画质清晰无水印,源码附件全课程地址:https://xueshu.f......
  • 今天学习了html
    我是标题<html> <head> <title>我是标题</title> </head> <body> <h1> 我是1号标题 </h1> </body></html>以上就是我今天学习的html代码总结html应该控制下字符集,防止乱码html应该有个标题,titlehtml的标签有一定意义,大家不要创造标签......
  • 【C#学习】--委托
    .1委托.1.1概述委托(代理)关键字delegate,是一种程序特性,它是用来代表方法、表示方法的,用编程里的另一个说法:委托是方法的指针。我们首先看看通常的声明语法:intage=10;//这里整型变量age代表的是10这个整型值CoursemyCourse=newCourse();//这里将Course类实例化......
  • WPF MVVM模式简介
    WPF是WindowsPresentationFoundation的缩写,它是一种用于创建桌面应用程序的用户界面框架。WPF支持多种开发模式,其中一种叫做MVVM(Model-View-ViewModel)。什么是MVVM?MVVM是一种软件架构模式,它将应用程序分为三个层次:Model(模型),View(视图)和ViewModel(视图模型)。Model表示应用程序的......