Window下Seata Server的安装配置以及Nacos server注册与配置中心

前言

Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。
本文档内容为TC的搭建与配置。
更多详细介绍请参考官方文档:Seata官方文档
seata-server官方下载地址:https://github.com/seata/seata/releases
由于官方地址网络不稳定,本文档提供window环境seata-server-1.4.0版本下载链接

百度网盘下载地址:

请注意,本文档使用版本为seata-server1.4.0,不同版本参数配置可能不一致,如以本文档为参考,请最好使用seata-server1.4.0版本。

官方给的一些数据库脚本和配置文件地址:https://github.com/seata/seata/tree/develop/script/server

安装配置

(一)环境准备

  • Windows:7
  • JDK: 8
  • seata-server:1.4.0
  • nacos-server:1.4.0
  • Mysql : 5.7
  • Git : 2.29.2 windows

本文档只关注seata-server的配置和安装,在开始之前,请确保上述其它环境正常。

(二)下载配置与安装

选择上述下载链接,下载seata-server1.4.0.zip文件;
下载解压后目录如下:
请添加图片描述

1、导入Seata默认配置到Nacos配置中心

  1. 在目录下新建nacos-config.sh脚本文件
    请添加图片描述
  2. 文件内容复制到该目录下新建的的nacos-config.sh文件中
  3. 在目conf同级目录下新建config.txt文件
    请添加图片描述
  4. 将文件内容复制到该目录下新建的config.txt文件中,其中有关数据库连接信息部分修改为自己的数据库信息,例如:
#For details about configuration items, see https://seata.io/zh-cn/docs/user/configurations.html
#Transport configuration, for client and server
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
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
transport.serialization=seata
transport.compressor=none

#Transaction routing rules configuration, only for the client
service.vgroupMapping.default_tx_group=default
#If you use a registry, you can ignore it
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false

#Transaction rule configuration, only for the client
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=true
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
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
#For TCC transaction mode
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h

#Log rule configuration, for client and server
log.exceptionRate=100

#Transaction storage configuration, only for the server. The file, DB, and redis configuration values are optional.
store.mode=DB
store.lock.mode=DB
store.session.mode=DB
#Used for password encryption
store.publicKey=

#If `store.mode,store.lock.mode,store.session.mode` are not equal to `file`, you can remove the configuration block.
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

#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
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/mallplus_seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=123456
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000

#These configurations are required if the `store mode` is `redis`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `redis`, you can remove the configuration block.
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

#Transaction rule configuration, only for the server
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.distributedLockExpireTime=10000
server.xaerNotaRetryTimeout=60000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=false
server.enableParallelRequestHandle=false

#Metrics configuration, only for the server
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

config.txt就是seata各种详细的配置,配置详解可参考:seata官方配置详解,执行 nacos-config.sh 即可将这些配置导入到nacos,这样就不需要将file.conf和registry.conf放到我们的项目中了,需要什么配置就直接从nacos中读取。(注意:文件路径不能有空格)
在这里插入图片描述
上面的文件夹会报错。
5. 当前目录右键->选择Git Bash Here,打开命令行窗口,执行命令:
sh nacos-config.sh -h 120.77.255.131 -p 8848 -g SEATA_GROUP -t fed273be-0659-402e-8879-dbb9e1721f34
请添加图片描述

-h 配置中心地址,即nacos地址
-p 指定nacos的端口地址;
-g 指定配置的分组,注意,是配置的分组;
-t 指定命名空间id,在nacos界面可以查看命名空间id
  1. 最终显示如下,边表示Seata配置导入Nacos成功
    请添加图片描述
  2. 访问Nacos查看导入的配置
    这个seata的命名空间是我自己创建的,各位按需求自行创建即可。
    请添加图片描述

2、启动Seata Server

进入…/seata/conf目录

  1. 修改file.conf请添加图片描述
  2. 修改registry.conf
    registry{}中是注册中心相关配置,config{}中是配置中心相关配置。seata中,注册中心和配置中心是分开实现的,是两个东西。本文档使用Nacos-server作为seata的注册中心和配置中心.。
 registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  loadBalance = "RandomLoadBalance"
  loadBalanceVirtualNodes = 10

   nacos {
    application = "seata-server"
    serverAddr = "120.77.255.131:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
    }
  }
  
  config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"

  nacos {
    serverAddr = "120.77.255.131:8848"
    namespace = "seata"
    group = "SEATA_GROUP"
    username = ""
    password = ""
    }
  }
  1. 导入数据库文件
    数据库与file.conf中配置的数据库对应,导入成功,数据库表如下:
    请添加图片描述
  2. 启动seata-server
    进入bin目录,单击seata-server.bat即可

请添加图片描述

  1. 启动成功画面如下:请添加图片描述
  2. 访问Nacos Server,在服务列表中查看。由于我并没有配置命名空间默认,只指定了分组,命名空间默认为public,各位按需要在registry.conf修改即可。请添加图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值