seata配置详情

文章详细介绍了Seata服务的注册配置,包括使用Nacos作为注册中心和服务配置存储,数据库存储方式,事务恢复和日志配置,以及客户端和服务端的传输设置。同时提到了在YML配置中如何设置Seata,并强调了与OpenFeign集成时的依赖选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

registry配置

registry {
  # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
  type = "nacos"
  nacos {
    # seata tc 服务注册到 nacos的服务名称,可以自定义
    application = "seata-tc-server"
    serverAddr = "127.0.0.1:8848"
    group = "DEFAULT_GROUP"
    namespace = "5a5d1f36-b484-4482-8592-4257d9e5a0a5"
    username = "nacos"
    password = "nacos"
    cluster="default"
  }
}

config {
  # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置
  type = "nacos"
  # 配置nacos地址等信息
  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = "5a5d1f36-b484-4482-8592-4257d9e5a0a5"
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
    dataId = seataServer.properties
  }
}

组与id需要一致

`# 数据存储方式,db代表数据库
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?serverTimezone=UTC
store.db.user=root
store.db.password=root
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

事务、日志等配置

server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000

客户端与服务端传输方式

transport.serialization=seata
transport.compressor=none

关闭metrics功能,提高性能

metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898`在这里插入图片描述## nacos 里面的配置

# 数据存储方式,db代表数据库
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?serverTimezone=UTC
store.db.user=root
store.db.password=root
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
# 事务、日志等配置
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000

# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none
# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

启动Seata

服务已经注册到里面了
在这里插入图片描述## yml配置

seata:
  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
    # 参考tc服务自己的registry.conf中的配置
    type: nacos
    nacos: # tc
      server-addr: 192.168.133.1:8848
      namespace: 5a5d1f36-b484-4482-8592-4257d9e5a0a5
      group: SEATA_GROUP #配置文件所在组
      username: nacos
      password: nacos
      cluster: default
  tx-service-group: my_test_tx_group #seata默认的组别  最好就用这个

seata can not get cluster name in registry config ‘service.vgroupMapping.XXX‘在这里插入图片描述

在这里插入图片描述

依赖与openFeign使用最好用以下依赖,seata-cloud-starter 会自动传播事务的xid 入下图 ,不用cloud依赖可能造成xid为null 的现象在这里插入图片描述


        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
            <exclusions>
                <!--版本较低,1.3.0,因此排除-->
                <exclusion>
                    <artifactId>seata-spring-boot-starter</artifactId>
                    <groupId>io.seata</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--seata starter 采用1.4.2版本-->
        <dependency>
            <groupId>io.seata</groupId>
            <artifactId>seata-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>
### 如何在Seata分布式事务框架中配置Nacos作为注册中心和配置管理 #### Nacos作为Seata的注册中心和配置中心的作用 为了使Seata能够利用Nacos的功能,需将Nacos设为Seata的服务发现机制的一部分以及其配置管理工具。这使得Seata可以动态获取配置信息,并通过Nacos来管理和定位其他微服务实例。 #### 设置Seata事务协调者的信息由Nacos管理 要让Seata使用Nacos作为配置中心,需要调整`config`部分以指向Nacos服务器地址和其他必要参数[^1]: ```properties config { type = "nacos" nacos { serverAddr = "127.0.0.1:8848" namespace = "e98fe52a-5a5d-4c55-98b8-cb867e045e18" group = "SEATA_GROUP" username = "nacos" password = "nacos" } } ``` 这段配置指定了连接至本地运行的一个Nacos实例的方式,同时也定义了一个特定的名字空间用于隔离不同环境下的配置项。 #### 添加Seata配置到Nacos配置中心 对于希望上传至Nacos的具体Seata配置文件,官方提供了一个模板文件`config.txt`供用户自定义修改后加载入Nacos平台。此过程涉及到创建一个新的配置条目,在其中输入经过编辑后的Seata配置文本[^2]。 具体而言,如果已经在应用中设置了针对开发环境(`dev`)的应用程序属性文件(application.yml),则应在相同环境下于Nacos内建立相应的命名空间,并在此上下文中添加名为`seataServer.properties`的新配置记录[^3]。 #### 创建Nacos中的Seata配置 当准备向Nacos导入Seata配置时,应按照如下步骤操作:进入Nacos控制台界面;选择对应的命名空间(如已设定为`dev`);新建配置并命名为`seataServer.properties`;最后复制预先整理好的Seata配置内容至此处完成发布。 这样做的好处是可以集中化管理所有与Seata有关联的服务端口、超时时间等重要设置,便于后续维护和版本迭代升级工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值