整合Seata-部署TC服务器步骤

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录


在这里插入图片描述
mysql的lock_table只有AT模式需要用到全局事务锁。

一、服务器

1.Seata需要连接mysql数据库首先需要配置数据源可以直接配置在conf/file.conf里面变更的时候就需要修改配置并且重启Seata所以一般选择配置在nacos上热部署修改配置之后不需要重启。

2.既然用到了nacos做配置管理所以在conf/registry.conf注册配置上加上注册配置管理加上一个dataId这个seataService.properties要对应上nacos的配置文件名。

1.1 registry

registry {
  # tc服务的注册中心类这里选择nacos也可以是eureka、zookeeper等
  type = "nacos"

  nacos {
    # seata tc 服务注册到 nacos的服务名称可以自定义
    application = "seata-tc-server"
    serverAddr = "IP地址:8848"
    group = "DEFAULT_GROUP"
    namespace = ""
    cluster = "SH"
    username = "nacos"
    password = "nacos"
  }
}

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

1.2 Seata数据源配置

在这里插入图片描述

# 数据存储方式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://IP地址:3306/seata?serverTimezone=Asia/Shanghai&useUnicode=true&rewriteBatchedStatements=true
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

1.3 Seata服务器启动

sh seata-server.sh -h ip地址 -p 8091 -m db 

二、客户端

1.Seata的服务器注册到nacos上可以直接注册直接配置Seata服务器的IP以及端口但是直连不太好Seata变更服务器之后客户端就需要修改所以需要用nacos做服务的注册和发现客户端去拉取TC服务器的配置。这样服务器的地址就交给了nacos管理客户端就不需要固定TC服务器的IP地址而是写TC服务名这样TC服务器更改之后也不需要修改客户端

2.所以TC服务器上conf/registry.conf需要把自己注册到nacos上服务名、ip地址、端口号以及nacos的账号密码等客户端就只需要配置需要拉取nacos上的哪个配置服务拉取的服务名、nacos账号密码等。

2.1 配置TC地址

seata:
  registry: # TC服务注册中心的配置微服务根据这些信息去注册中心获取tc服务地址
    type: nacos # 注册中心类型 nacos
    nacos:
      server-addr: IP地址:8848 # nacos地址
      namespace: "" # namespace默认为空
      group: DEFAULT_GROUP # 分组默认是DEFAULT_GROUP
      application: seata-tc-server # seata服务名称
      username: nacos
      password: nacos
  tx-service-group: seata-leadnews # 事务组名称
  service:
    vgroup-mapping: # 事务组与cluster的映射关系
      seata-leadnews: SH

三、总结

1.TC服务器连接mysql的配置需要放在nacos上做配置管理 数据源变更不用重启Seata服务器

2.TC服务器需要把自己注册到nacos让微服务去拉取自己的配置信息。 Seata服务器变更客户端不用修改

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 服务器