https://seata.io/zh-cn/blog/download.html

source:源文件
binary:编译后的文件,用以配置、启动
注:这两个文件都要下载,后面会用到源文件里的一些配置
https://github.com/seata/seata/blob/master/script/server/db/mysql.sql
https://github.com/seata/seata/blob/master/script/client/at/db/mysql.sql
https://seata.io/zh-cn/docs/overview/what-is-seata.html
seata/seata-server-1.4.2/bin目录下
修改mode = “db” 然后再修改db模块的配置信息(记得在seata库里初始化server端用到的sql)

根据自己nacos的配置进行修改



https://seata.io/zh-cn/docs/user/configuration/nacos.html
创建命名空间seata_config
在命名空间seata_config中创建配置seataServer.properties的配置,类型为properties
配置内容参考
seata-1.4.2/script/config-center/config.txt(下载源文件里)记得修改
client.undo.logSerialization = "kryo"以及数据库配置
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableClientBatchSendRequest=false
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
# 注意 my_test_tx_group 这个是自定义名称,如果修改的话记得要跟项目的配置保持一致
service.vgroupMapping.my_test_tx_group=default
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
store.mode=file
store.publicKey=
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.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
store.redis.mode=single
store.redis.single.host=127.0.0.1
store.redis.single.port=6379
store.redis.sentinel.masterName=
store.redis.sentinel.sentinelHosts=
store.redis.maxConn=10
store.redis.minConn=1
store.redis.maxTotal=100
store.redis.database=0
store.redis.password=
store.redis.queryLimit=100
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
client.undo.dataValidation=true
# jackson本身的向前兼容性存在问题,将Seata的序列化方式切换到非 jackson 序列化方式 配置项为client.undo.logSerialization = "kryo"
client.undo.logSerialization=kryo
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
log.exceptionRate=100
transport.serialization=seata
transport.compressor=none
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
创建自定义的命名空间,然后添加项目的具体配置,样例如下
nacos-client-server.yml

配置内容参考:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/order?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
druid:
name: local
initial-size: 5
max-active: 15
min-idle: 5
max-wait: 3000
pool-prepared-statements: true
max-open-prepared-statements: 20
validation-query: select version()
validation-query-timeout: 0
test-on-borrow: false
test-on-return: false
test-while-idle: false
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 50000
max-evictable-idle-time-millis: 300000
mysql:
usePingMethod: false
mybatis-plus:
mapper-locations: classpath*:/mapper/*.xml
# 分布式事务配置
seata:
enabled: true
application-id: ${spring.application.name}
# 这里的这个my_test_tx_group名字要跟seata服务端的配置保持一致(命名空间seata_config中创建配置seataServer.properties的配置)
tx-service-group: my_test_tx_group
# seata服务端的配置
config:
type: nacos
nacos:
server-addr: 127.0.0.1:8848
group: "SEATA_GROUP"
namespace: "seata_config"
dataId: "seataServer.properties"
username: "nacos"
password: "nacos"
创建自定义的命名空间,然后添加项目的具体配置,样例如下
nacos-provider-server.yml

配置内容参考:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/user?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
druid:
name: local
initial-size: 5
max-active: 15
min-idle: 5
max-wait: 3000
pool-prepared-statements: true
max-open-prepared-statements: 20
validation-query: select version()
validation-query-timeout: 0
test-on-borrow: false
test-on-return: false
test-while-idle: false
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 50000
max-evictable-idle-time-millis: 300000
mysql:
usePingMethod: false
mybatis-plus:
mapper-locations: classpath*:/mapper/*.xml
# 分布式事务配置
seata:
enabled: true
application-id: ${spring.application.name}
# 这里的这个my_test_tx_group名字要跟seata服务端的配置保持一致(命名空间seata_config中创建配置seataServer.properties的配置)
tx-service-group: my_test_tx_group
# seata服务端的配置
config:
type: nacos
nacos:
server-addr: 127.0.0.1:8848
group: "SEATA_GROUP"
namespace: "seata_config"
dataId: "seataServer.properties"
username: "nacos"
password: "nacos"

server:
port: 8083
spring:
application:
name: nacos-client-server
cloud:
nacos:
config:
namespace: gxy
server-addr: localhost:8848
file-extension: yml
group: DEFAULT_GROUP
discovery:
namespace: gxy
server-addr: localhost:8848
output:
ansi:
enabled: always

server:
port: 8081
spring:
application:
name: nacos-provider-server
cloud:
nacos:
config:
# namespace: test
# server-addr: 172.16.0.85:8848
namespace: gxy
server-addr: localhost:8848
file-extension: yml
group: DEFAULT_GROUP
discovery:
# namespace: test
# server-addr: 172.16.0.85:8848
namespace: gxy
server-addr: localhost:8848
output:
ansi:
enabled: always
nacos-client-server 调用 nacos-provider-server进行数据库写操作,发生异常然然后数据回滚


客户端日志

