From 10eba8955f5a7d54fcba70f10a1adc0706ec3941 Mon Sep 17 00:00:00 2001 From: leggasai <1642271413@qq.com> Date: Sun, 9 Feb 2025 19:59:13 +0800 Subject: [PATCH] fix raftsnapshot serializer --- console/src/main/resources/static/favicon.ico | Bin 3692 -> 0 bytes .../raft/snapshot/RaftSnapshotSerializer.java | 1 + .../src/main/resources/application-test.yml | 79 +++++++ server/src/main/resources/config.conf | 110 +++++++++ server/src/main/resources/file.conf | 108 +++++++++ server/src/main/resources/proconf.properties | 24 ++ server/src/main/resources/ymlconf.yml | 210 ++++++++++++++++++ 7 files changed, 532 insertions(+) delete mode 100644 console/src/main/resources/static/favicon.ico create mode 100644 server/src/main/resources/application-test.yml create mode 100644 server/src/main/resources/config.conf create mode 100644 server/src/main/resources/file.conf create mode 100644 server/src/main/resources/proconf.properties create mode 100644 server/src/main/resources/ymlconf.yml diff --git a/console/src/main/resources/static/favicon.ico b/console/src/main/resources/static/favicon.ico deleted file mode 100644 index 2cdb3f9b97f96dc0c70c7191b1a3889941761d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3692 zcmb`Jc{J4h9>;%Utdn@i5E&9eBV`LkqNa&LmdH*e&zQ)PWNQ*pvaeaPO!hDd$xgB- zW(>nf8X6hP*v2+tuIJu+?s?9=&%NhvpL5>dbH2+zug~}M{(Qfz5!M(G25@t7a&dBS zb8&I;@Nh$Th4%CA+s7*^cz|CBCMGEX6B8FdETbfM_=uvkxVXHAg5pVKH8nL!IV~Mc z6>TL|H5CvK4-fA?-h=!1A5@VNms0tUgVh2Ea06XH7Z`K|U=sj=1wgEiAS?iYI6!|6 z;I9E<1G95*a&hxO_Wc5|fxuukb}$DAJNw?r;JrP7U4TPSN?DKdfT=Ur5icQ?koa6~ zY5j^;s2P4qM)ijGV;+dG$U#vt*`spu3dhvcPibgsoj!j7aS?gRz|h>{nx)lsYnz+5 zTyDGmigNS0=X>Apfqy_~*pu*xr_Ul25|ffsQeUK{V_)Uv7Zes1m%Od4s(x4VzP9c| z+sF2f&aUnr!XR;Im^3mS=*yCYi zX9u%${l)`g^V<_xfSp51nNv{Dl*`%cz!8-YZXx~n+=^BnX;rf&=nZc?L|8_RBD?$> z(w~X`J)p<`717^-{>H;11H53+-i3h$09~L38wqEuetR4#pTqV)$@}6;S4Bq@y%S_{ zE79IE?VIgbzMwa<*+h8L zCqyj>H$~edxr+xwK6j69WhQ(2qTtoJ$p|4U)F&ZR1n|!UMVk!L)z5sat~MfQ;1Cjd z>rgB9Og^IkT(}wn&lvjpYQY>JWKH2QknbInDH7Ql4iOhc_~!ak3(brUw7pALJeMPA z7r*+cEjxz+tw2Cme2;xD%`BkzW1naa#wuEdAcQPko(P#?XcJE zzG<6M1l(dV1%-5^$_L%h@!-aKjMAybmX(u8D0Np6e=)JxKd$_Exk?uoLWi`5!zgxY zHQzLy8(3c6L_im$R<)S&*v85ph&=YuAL&#O++}_7moaJHJY?V9O@8UM_JDRzUH%)K zE6h9I@g=*rvUgJIXSYhf7OFpV=-Tiek-eNz50TI7^Owu9Ag;lKk9E__ZMhpbVAt2# z8s;pP9~KrF{4BO1Na3At@J|L3ziJR=YKO^#{wrmVK!F~I1u<83A=BuYm3dyMx~1Df z)=>=+4Gm+yZjnT5;*@)D(KvWfRdUYWFJk-G!9G|)0n|E%nCYpyOWGuHA^e6vn3YLb zUzo~&T5N1}WrLS+yP`q8=u~dbSg*84JSe)Gj>PnGR{L3X4HeKVJcIf33f0XZmy3_0 z`P(gZ?+(a8RAr?59NTcT^pQUGM=rQbi%AzNwr!M=d1!iqdxG~Ud z>Cv)I@v%vsToz!ZVE1Duabf#)pKmt5TLAm6{Z8eP#IR(4BvX<$+?1izX;#c}aXo?1 z85;e87&d-6u(Ws2-$UA~ZMtLp8@O7GUy|+WaB*_mhT7p&M^^J6>(~FR=h= z#|6X2)Tv#UKAY=>!zYeDskyMK3g`QlIbDoL1XO*?g+d2bf5<6loy|oET@(BxhZ&)~ z*Zn-dba*anI&X@t&Dp-d9lufgqy~8;+}uIK9vQZMPHpR9`@PL~aa21-baM*}$Xc7e z{Qzl`t>%Zk5B{atB*j*Bpcvml=&H!+RcZT0ZXiz&Pxeq2=*|hEag+o^E0oc98!g6}Q9ib1wfit*jN(c(qj zM>193v~mqZGBeLA#mG7&;kL4M9rs&?RwJCNOcD29?DdCp9RETv-H4#;Odli~(`0+{ z9Iw`c&YGfi9EwnVT-U6^pla^vbQo_?1pTJ~QL-#(!m?_|aMiHZHses*;UtWp#H)dr zsS#5A3zw7afdfHrw?%1As|o`fx5}Fj&@X4jFnQ)( z>O0c_5iSEsY0JpRS81Y@{cszYC(E5}Z03W-}n?w~X?Hee{8``%LGMv`~g8f?ES z-dw%|onkoSmH52DK5hQ1=w`HYNr~;O5$q*Jvs*KIH;loQ{6zBLmOlI#K7EX)tuy6r z+csZOnvJT0IVF7u?RL*L_mZ3Z4#jm?Wx+<*X)E)A*X_nT$IEbO^L341KmI%|aowdU zEBX1A@HJm~v$aFspK@E7>xHCfh;eq^hK{wxde+JasvO;s?ma%!LA6pDgSEucv-mf6 zp@j6v2bPmOQV-1#$0qcZZSh4kBcprD#T;gQ{KbgiD2pA$siq;dA^b|2 z^@uz+(&-;OnL`O-Xysua>D21K00lbpZqs_Do59tNosYy{C(_p(ks!EHGw4nB? zE45|%WAT$!=G153(k9~#>y$0IDqyJO_3nc5*d({ltq37=@Srxoa%x*i9t$W*9thUF zJ7*8`$>I*dE=``{^?zF#TL@-aAsr=SYKC1seh?@p=B2#~5~~&Rbl`C_+7UKa)2Ymu z#}pR8khXB6znL`h*y=p*$pV-HCD+#9V<S6Sbt_}Tld+7<6!9{HSqsdESo{Y0OyU;nZM=odaP1tyCkLGtj^DmNKj%PBQ zzql@>^kdA)y{{F{k2c~xBIR)h8K12_eigJg$Xf5+=Qk9WshIr@-Cypmq?oU4_hDI6 zvn|T1deB}NL7o*2=I+9o>`No&)XJ2{h+pJ{I;!Baq->aS5#?)XBsaDDE!(RCEfQY~ z8ZTY94t;NPj=w0%Vr|e|%i~nooljCJGK&iK0=BKNvIbB6`kT@EMGUsQ9K3_Hdwu1Q zf$S|cqKMT#G)lc~XC$t6o72t5E;V}1^sZA~ko(Wktso49e_6L{xJu#lkdTP^>1wE^ zR#OD<*?x3{`rff6pgj)6r2>5%!ZS_dyYG=x5sWq6j3Rm2FhI%66 z3PrTN!;qFNs%c<&CabS-*0L`D&HJjP(|#}_Q-EAXdT#A#kJ?}hG)PzA@?D%q2Fx=i zB&9&=aPKk}pyT{qvPhTExWZUF+xHAvj0{^la`Vw7E^ULuUSrQC@pBmhf zKwl7#3XPwI_aam5H37NECqC2JC0oR0dAlDV1i$=e9&Xz;kDlec^=QTvLe(zWq-dVBv& zudY9;wBN5mW&94D-z`B&vjDHBMKgJXz{mGTs&@*D1VV#-VwtlOQ&$bN2`r#Ad17b! cXc|J6yDV-ikGc0aSRBSi$^-ugfmx$}0&@z+H2?qr diff --git a/server/src/main/java/org/apache/seata/server/cluster/raft/snapshot/RaftSnapshotSerializer.java b/server/src/main/java/org/apache/seata/server/cluster/raft/snapshot/RaftSnapshotSerializer.java index 28aa70b9937..b8fef1970be 100644 --- a/server/src/main/java/org/apache/seata/server/cluster/raft/snapshot/RaftSnapshotSerializer.java +++ b/server/src/main/java/org/apache/seata/server/cluster/raft/snapshot/RaftSnapshotSerializer.java @@ -50,6 +50,7 @@ public class RaftSnapshotSerializer { PERMITS.add(io.seata.server.cluster.raft.snapshot.RaftSnapshot.class.getName()); PERMITS.add(io.seata.server.cluster.raft.snapshot.RaftSnapshot.SnapshotType.class.getName()); PERMITS.add(java.lang.Enum.class.getName()); + PERMITS.add(java.util.HashMap.class.getName()); PERMITS.add("[B"); } diff --git a/server/src/main/resources/application-test.yml b/server/src/main/resources/application-test.yml new file mode 100644 index 00000000000..708f419c826 --- /dev/null +++ b/server/src/main/resources/application-test.yml @@ -0,0 +1,79 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +server: + port: 7091 + +spring: + application: + name: seata-server + +logging: + config: classpath:logback-spring.xml + file: + path: ${log.home:${user.home}/logs/seata} + extend: + logstash-appender: + destination: 127.0.0.1:4560 + kafka-appender: + bootstrap-servers: 127.0.0.1:9092 + topic: logback_to_logstash + +console: + user: + username: seata + password: seata +seata: + config: + # support: nacos, consul, apollo, zk, etcd3 +# type: file + type: raft + db: +# support: rocksdb(current), leveldb, caffeine + type: rocksdb + dir: configStore + registry: + # support: nacos, eureka, redis, zk, consul, etcd3, sofa + type: file + store: + # support: file 、 db 、 redis 、 raft +# mode: file + mode: raft + file: + dir: sessionStore + # server: + # service-port: 8091 #If not configured, the default is '${server.port} + 1000' + security: + secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017 + tokenValidityInMilliseconds: 1800000 + ignore: + urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/version.json,/health,/error + server: + raft: + group: default #此值代表该raft集群的group,client的事务分组对应的值要与之对应 + server-addr: 192.168.241.1:9091 # 3台节点的ip和端口,端口为该节点的netty端口+1000,默认netty端口为8091 + snapshot-interval: 600 # 600秒做一次数据的快照,以便raftlog的快速滚动,但是每次做快照如果内存中事务数据过多会导致每600秒产生一次业务rt的抖动,但是对于故障恢复比较友好,重启节点较快,可以调整为30分钟,1小时都行,具体按业务来,可以自行压测看看是否有抖动,在rt抖动和故障恢复中自行找个平衡点 + apply-batch: 32 # 最多批量32次动作做一次提交raftlog + max-append-bufferSize: 262144 #日志存储缓冲区最大大小,默认256K + max-replicator-inflight-msgs: 256 #在启用 pipeline 请求情况下,最大 in-flight 请求数,默认256 + disruptor-buffer-size: 16384 #内部 disruptor buffer 大小,如果是写入吞吐量较高场景,需要适当调高该值,默认 16384 + election-timeout-ms: 1000 #超过多久没有leader的心跳开始重选举 + reporter-enabled: false # raft自身的监控是否开启 + reporter-initial-delay: 60 # 监控的区间间隔 + serialization: jackson # 序列化方式,不要改动 + compressor: none # raftlog的压缩方式,如gzip,zstd等 + sync: true # raft日志的刷盘方式,默认是同步刷盘 \ No newline at end of file diff --git a/server/src/main/resources/config.conf b/server/src/main/resources/config.conf new file mode 100644 index 00000000000..fbce98ff9a8 --- /dev/null +++ b/server/src/main/resources/config.conf @@ -0,0 +1,110 @@ + +transport { + # tcp, unix-domain-socket + type = "TCP" + #NIO, NATIVE + server = "NIO" + #enable heartbeat + heartbeat = true + # the tm client batch send request enable + enableTmClientBatchSendRequest = false + # the rm client batch send request enable + enableRmClientBatchSendRequest = true + # the rm client rpc request timeout + rpcRmRequestTimeout = 2000 + # the tm client rpc request timeout + rpcTmRequestTimeout = 30000 + # the rm client rpc request timeout + rpcRmRequestTimeout = 15000 + #thread factory for netty + threadFactory { + bossThreadPrefix = "NettyBoss" + workerThreadPrefix = "NettyServerNIOWorker" + serverExecutorThread-prefix = "NettyServerBizHandler" + shareBossWorker = false + clientSelectorThreadPrefix = "NettyClientSelector" + clientSelectorThreadSize = 1 + clientWorkerThreadPrefix = "NettyClientWorkerThread" + # netty boss thread size + bossThreadSize = 1 + #auto default pin or 8 + workerThreadSize = "default" + } + shutdown { + # when destroy server, wait seconds + wait = 3 + } + serialization = "seata" + compressor = "none" +} +service { + #transaction service group mapping + vgroupMapping.my_test_tx_group = "default" + #only support when registry.type=file, please don't set multiple addresses + default.grouplist = "127.0.0.1:8091" + #degrade, current not support + enableDegrade = false + #disable seata + disableGlobalTransaction = false +} + +client { + rm { + asyncCommitBufferLimit = 10000 + lock { + retryInterval = 10 + retryTimes = 30 + retryPolicyBranchRollbackOnConflict = true + } + reportRetryCount = 5 + tableMetaCheckEnable = false + tableMetaCheckerInterval = 60000 + reportSuccessEnable = false + sagaBranchRegisterEnable = false + sagaJsonParser = "fastjson" + sagaRetryPersistModeUpdate = false + sagaCompensatePersistModeUpdate = false + tccActionInterceptorOrder = -2147482648 #Ordered.HIGHEST_PRECEDENCE + 1000 + sqlParserType = "druid" + branchExecutionTimeoutXA = 60000 + connectionTwoPhaseHoldTimeoutXA = 10000 + } + tm { + commitRetryCount = 5 + rollbackRetryCount = 5 + defaultGlobalTransactionTimeout = 60000 + degradeCheck = false + degradeCheckPeriod = 2000 + degradeCheckAllowTimes = 10 + interceptorOrder = -2147482648 #Ordered.HIGHEST_PRECEDENCE + 1000 + } + undo { + dataValidation = true + onlyCareUpdateColumns = true + logSerialization = "jackson" + logTable = "undo_log" + compress { + enable = true + # allow zip, gzip, deflater, lz4, bzip2, zstd default is zip + type = zip + # if rollback info size > threshold, then will be compress + # allow k m g t + threshold = 64k + } + } + loadBalance { + type = "XID" + virtualNodes = 10 + } +} +log { + exceptionRate = 100 +} +tcc { + fence { + # tcc fence log table name + logTableName = tcc_fence_log + # tcc fence log clean period + cleanPeriod = 1h + } +} diff --git a/server/src/main/resources/file.conf b/server/src/main/resources/file.conf new file mode 100644 index 00000000000..154d18c80b8 --- /dev/null +++ b/server/src/main/resources/file.conf @@ -0,0 +1,108 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +registry { + # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa + type = "file" + + nacos { + serverAddr = "localhost" + namespace = "" + cluster = "default" + } + eureka { + serviceUrl = "http://localhost:8761/eureka" + application = "default" + weight = "1" + } + redis { + serverAddr = "localhost:6379" + db = "0" + } + zk { + cluster = "default" + serverAddr = "127.0.0.1:2181" + sessionTimeout = 6000 + connectTimeout = 2000 + } + consul { + cluster = "default" + serverAddr = "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 + type = "file" + + nacos { + serverAddr = "localhost" + namespace = "" + } + consul { + serverAddr = "127.0.0.1:8500" + } + apollo { + appId = "seata-server" + apolloMeta = "http://192.168.1.204:8801" + } + zk { + serverAddr = "127.0.0.1:2181" + sessionTimeout = 6000 + connectTimeout = 2000 + } + etcd3 { + serverAddr = "http://localhost:2379" + } + file { + name = "file.conf" + } + + db { + type = "rocksdb" + dir = "configStore" + destroyOnShutdown = false + } + +} + +store { + mode = "file" +} + +service { + vgroupMapping.default_tx_group = "default" + default.grouplist = "127.0.0.1:8091" + disableGlobalTransaction = false +} + diff --git a/server/src/main/resources/proconf.properties b/server/src/main/resources/proconf.properties new file mode 100644 index 00000000000..7e94fbef63d --- /dev/null +++ b/server/src/main/resources/proconf.properties @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +server.port=7091 +seata.metrics.enabled=true +seata.metrics.exporter-list=prometheus +seata.metrics.exporter-prometheus-port=9898 +seata.metrics.registry-type=compact +seata.server.service-port=8091 \ No newline at end of file diff --git a/server/src/main/resources/ymlconf.yml b/server/src/main/resources/ymlconf.yml new file mode 100644 index 00000000000..fb4cfad34a6 --- /dev/null +++ b/server/src/main/resources/ymlconf.yml @@ -0,0 +1,210 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +server: + port: 7091 + +spring: + application: + name: seata-server + +logging: + config: classpath:logback-spring.xml + file: + path: ${log.home:${user.home}/logs/seata} + extend: + logstash-appender: + destination: 127.0.0.1:4560 + kafka-appender: + bootstrap-servers: 127.0.0.1:9092 + topic: logback_to_logstash + +seata: + config: + # support: nacos 、 consul 、 apollo 、 zk 、 etcd3 + type: file + nacos: + server-addr: 127.0.0.1:8848 + namespace: + group: SEATA_GROUP + context-path: + ##1.The following configuration is for the open source version of Nacos + username: + password: + ##2.The following configuration is for the MSE Nacos on aliyun + #access-key: + #secret-key: + ##3.The following configuration is used to deploy on Aliyun ECS or ACK without authentication + #ram-role-name: + data-id: seataServer.properties + consul: + server-addr: 127.0.0.1:8500 + acl-token: + key: seata.properties + apollo: + appId: seata-server + apollo-meta: http://192.168.1.204:8801 + apollo-config-service: http://192.168.1.204:8080 + namespace: application + apollo-access-key-secret: + cluster: seata + zk: + server-addr: 127.0.0.1:2181 + session-timeout: 6000 + connect-timeout: 2000 + username: + password: + node-path: /seata/seata.properties + etcd3: + server-addr: http://localhost:2379 + key: seata.properties + registry: + # support: nacos 、 eureka 、 redis 、 zk 、 consul 、 etcd3 、 sofa + type: file + preferred-networks: 30.240.* + nacos: + application: seata-server + server-addr: 127.0.0.1:8848 + group: SEATA_GROUP + namespace: + cluster: default + context-path: + ##1.The following configuration is for the open source version of Nacos + username: + password: + ##2.The following configuration is for the MSE Nacos on aliyun + #access-key: + #secret-key: + ##3.The following configuration is used to deploy on Aliyun ECS or ACK without authentication + #ram-role-name: + eureka: + service-url: http://localhost:8761/eureka + application: default + weight: 1 + redis: + server-addr: localhost:6379 + db: 0 + password: + cluster: default + timeout: 0 + zk: + cluster: default + server-addr: 127.0.0.1:2181 + session-timeout: 6000 + connect-timeout: 2000 + username: + password: + consul: + cluster: default + server-addr: 127.0.0.1:8500 + acl-token: + etcd3: + cluster: default + server-addr: http://localhost:2379 + sofa: + server-addr: 127.0.0.1:9603 + application: default + region: DEFAULT_ZONE + datacenter: DefaultDataCenter + cluster: default + group: SEATA_GROUP + address-wait-time: 3000 + + server: + service-port: 8091 #If not configured, the default is '${server.port} + 1000' + max-commit-retry-timeout: -1 + max-rollback-retry-timeout: -1 + rollback-retry-timeout-unlock-enable: false + enable-check-auth: true + enable-parallel-request-handle: true + enable-parallel-handle-branch: false + retry-dead-threshold: 130000 + xaer-nota-retry-timeout: 60000 + enableParallelRequestHandle: true + applicationDataLimitCheck: true + applicationDataLimit: 64000 + recovery: + committing-retry-period: 1000 + async-committing-retry-period: 1000 + rollbacking-retry-period: 1000 + timeout-retry-period: 1000 + undo: + log-save-days: 7 + log-delete-period: 86400000 + session: + branch-async-queue-size: 5000 #branch async remove queue size + enable-branch-async-remove: false #enable to asynchronous remove branchSession + store: + # support: file 、 db 、 redis 、 raft + mode: file + session: + mode: file + lock: + mode: file + file: + dir: sessionStore + max-branch-session-size: 16384 + max-global-session-size: 512 + file-write-buffer-cache-size: 16384 + session-reload-read-size: 100 + flush-disk-mode: async + db: + datasource: druid + db-type: mysql + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true + user: mysql + password: mysql + min-conn: 10 + max-conn: 100 + global-table: global_table + branch-table: branch_table + lock-table: lock_table + distributed-lock-table: distributed_lock + query-limit: 1000 + max-wait: 5000 + redis: + mode: single + # support: lua 、 pipeline + type: lua + database: 0 + min-conn: 10 + max-conn: 100 + password: + max-total: 100 + query-limit: 1000 + single: + host: 127.0.0.1 + port: 6379 + sentinel: + master-name: + sentinel-hosts: + sentinel-password: + metrics: + enabled: false + registry-type: compact + exporter-list: prometheus + exporter-prometheus-port: 9898 + transport: + rpc-tc-request-timeout: 15000 + enable-tc-server-batch-send-response: false + shutdown: + wait: 3 + thread-factory: + boss-thread-prefix: NettyBoss + worker-thread-prefix: NettyServerNIOWorker + boss-thread-size: 1