当前位置: 首页 > Linux

Linux部署Seata实录(Nacos作为配置和注册中心)

时间:2023-04-06 11:24:37 Linux

海塔1。版本1.2.02。文档地址:http://seata.io/zh-cn/docs/ops/deploy-by-docker.html3。使用docker部署seata3.1拉取运行镜像dockerpullseataio/seata-server:1.2.0dockerrun-d--nameseata-server-p8091:8091-dseataio/seata-server:1.2.03.2使用dockercp命令复制容器中的配置文件。dockercpseata-server:/seata-server/resources~/seata-script3.3进入seata-script文件夹cd~/seata-script3.4修改file.confvimfile.conf3.5需要根据需要修改url你自己的环境,用户,密码##事务日志存储,只在seata-serverstore中使用{##storemode:file,db##这里修改为dbmode="db"##filestorepropertyfile{##storelocationdirdir="sessionStore"#branchsessionsize,如果超过先尝试压缩lockkey,仍然超过会抛出异常maxBranchSessionSize=16384#globesessionsize,如果超过会抛出异常maxGlobalSessionSize=512#filebuffersize,如果超过则分配新的bufferfileWriteBufferCacheSize=16384#何时恢复批量读取大小sessionReloadReadSize=100#async,syncflushDiskMode=async}##数据库存储属性db{##javax.sql.DataSource的实现,如DruidDataSource(druid)/BasicDataSource(dbcp)等datasource="druid"##mysql/oracle/postgresql/h2/oceanbaseetc.dbType="mysql"driverClassName="com.mysql.jdbc.Driver"##改成自己数据库的ip、端口和库名url="jdbc:mysql://ip:port/seata_demo"##改成自己的数据库用户名user="user"##改成自己的数据库密码password="pass"minConn=5maxConn=30globalTable="global_table"branchTable="branch_table"lockTable="lock_table"queryLimit=100maxWait=5000}}3.6修改registry.conf文件vimregistry.confregistry{#file,nacos,eureka,redis,zk,consul,etcd3,sofa##改成nacos,如下配置只需要关注nacos,其他的可以删掉type="nacos"nacos{##注意官网配置文件这里其实有个坑,就是nacos的application配置,老的值为seata-server,我们需要将其改为serverAddrapplication="seataAddr"##改成Nacos服务器ip地址serverAddr="127.0.0.1"##改成Nacos给Seata使用的Namespace,需要在Nacos上新建一个namespace="seata"cluster="default"##改成Nacos用户名username="nacos"##改成Nacos密码password="nacos"}eureka{serviceUrl="http://localhost:8761/eureka"application="default"weight="1"}redis{serverAddr="localhost:6379"db=0password=""cluster="default"timeout=0}zk{cluster="default"serverAddr="127.0.0.1:2181"sessionTimeout=6000connectTimeout=2000username="“密码=”“}领事{集群=“默认”服务器地址=“127.0.0.1:8500"}etcd3{cluster="default"serverAddr="http://localhost:2379"}sofa{serverAddr="127.0.0.1:9603"application="default"region="DEFAULT_ZONE"datacenter="DefaultDataCenter"cluster="default"group="SEATA_GROUP"addressWaitTime="3000"}file{name="file.conf"}}config{#file、nacos、apollo、zk、consul、etcd3##修改为nacostype="nacos"##修改方法同上nacos{serverAddr="127.0.0.1"namespace="seata"group="SEATA_GROUP"username="nacos"password="nacos"}consul{serverAddr="127.0.0.1:8500"}apollo{appId="seata-server"apolloMeta="http://192.168.1.204:8801"namespace="application"}zk{serverAddr="127.0.0.1:2181"sessionTimeout=6000connectTimeout=2000username=""password=""}etcd3{serverAddr="http://localhost:2379"}file{name="file.conf"}}3.7将修改后的配置文件复制回seata容器dockercpregistry.confseata-server:/seata-server/resourcesdockercpfile.confseata-server:/seata-server/resources3.8重启seata-server容器dockerrestartseata-server如果启动成功,你会在nacos3.9上看到这个服务通过脚本将配置转移到nacos3.9.1下载源码:https://github.com/seata/seata/tree/1.2.03.9.2用idea打开3.9.3,找到截图位置,修改/script/config-center/config.txt,配置transport.type=TCPtransport.server=NIOtransport。heartbeat=truetransport.enableClientBatchSendRequest=falsetransport.threadFactory.bossThreadPrefix=NettyBosstransport.threadFactory.workerThreadPrefix=NettyServerNIOWorkertransport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandlertransport.threadFactory.shareBossWorker=falsetransport.threadFactory.clientSelectorThreadPrefix=NettyClientSelectortransport.threadFactory.clientSelectorThreadSize=1transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThreadtransport.threadFactory.bossThreadSize=1transport.threadFactory.workerThreadSize=defaulttransport.shutdown.wait=3##所有需要用到Seata的微服务名,需要跟微服务中Seata的配置一致service.vgroupMapping.TEST-GROUP=defaultservice.vgroupMapping.TEST1-GROUP=defaultservice.vgroupMapping.TEST2-GROUP=defaultservice.default.grouplist=127.0.0.1:8091service.enableDegrade=falseservice.disableGlobalTransaction=falseclient.rm.asyncCommitBufferLimit=10000client.rm.lock.retryInterval=10client.rm.lock.retryTimes=30client.rm.lock.retryPolicyBranchRollbackOnConflict=trueclient.rm.reportRetryCount=5客户端。rm.tableMetaCheckEnable=falseclient.rm.sqlParserType=druidclient.rm.reportSuccessEnable=falseclient.rm.sagaBranchRegisterEnable=falseclient.tm.commitRetryCount=5client.tm.rollbackRetryCount=5client.tm.defaultGlobalTransactionTimeout=60000client.tm.degradeCheck=falseclient.tm.degradeCheckAllowTimes=10client.tm.degradeCheckPeriod=2000##修改为dbstore.mode=dbstore.file.dir=文件存储/datastore.file.maxBranchSessionSize=16384store.file.maxGlobalSessionSize=512store.file.fileWriteBufferCacheSize=16384store.file.flushDiskMode=asyncstore.file.sessionReloadReadSize=100store.db.datasource=druidstore.db.dbType=mysqlstore.db.driverClassName=com.mysql.jdbc.Driver##修改为自己的数据库store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=truestore.db.user=usernamestore.db.password=passwordstore.db.minConn=5store.db.maxConn=30store.db.globalTable=global_tablestore.db.branchTable=branch_tablestore.db.queryLimit=100store.db.lockTable=lock_tablestore.db.maxWait=5000store.redis.host=127.0.0.1store.redis.port=6379store.redis.maxConn=10store.redis.minConn=1store.redis.database=0store.redis.password=nullstore.redis.queryLimit=100server.recovery.committingRetryPeriod=1000server.recovery.asynCommittingRetryPeriod=1000server.recovery.rollbackingRetryPeriod=1000server.recovery.timeoutRetryPeriod=1000server.maxCommit-RetryTimeUnrollableEnlockRetryPeriod=ll=falseclient.undo.dataValidation=trueclient.undo.logSerialization=jacksonclient.undo.onlyCareUpdateColumns=trueserver.undo.logSaveDays=7server.undo.logDeletePeriod=86400000client.undo.logportialTable=undo_logclient.log=10exceptionRate=transseatatransport.compressor=nonemetrics。enabled=falsemetrics.registryType=compactmetrics.exporterList=prometheusmetrics.exporterPrometheusPort=98983.9.4idea执行nacos-config.sh脚本,将86行改成config.txt的路径forlinein$(cat../config.txt|seds/[[:空格:]]//g);do3.9.5idea终端运行,如果运行成功,终端会打印出所有的配置,在nacosbashnacos-config.sh-hnacosip-p对应的namespace中也可以看到这些配置nacos端口-gnacos上seata组-tnacos上seata命名空间##例如bashnacos-config.sh-h127.0.0.1-p8848-gseata-tSEATA_GROUP