DOCKER安装SEATA注册到NACOS
因为总是多多少少的会出现问题,所以我自行搭建成功,跳过所有坑之后写了个博客,此处没有使用集群
说明:请创建对应seata所需的数据库,将seata源码中的sql执行进去
1、使用最新的seata和nacos以及mysql5.7版本,基于centos7.4
|
1
|
docker pull seataio/seata-server |
2、增加配置文件file.conf和registry.conf,内容如下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
## transaction log store, only used in seata-serverstore { ## store mode: file、db、redis mode ="db" ## database store property db { ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc. datasource ="druid" dbType ="mysql" driverClassName ="com.mysql.cj.jdbc.Driver" url ="jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" user ="root" password ="123456" minConn = 5 maxConn = 100 globalTable ="global_table" branchTable ="branch_table" lockTable ="lock_table" queryLimit = 100 maxWait = 5000 }} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
registry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type ="nacos" nacos { application ="seata-server" serverAddr ="192.168.0.1:8848" namespace ="" cluster ="luim-tx-group" username ="nacos" password ="nacos" } eureka { serviceUrl ="http://localhost:8761/eureka" application ="default" weight ="1" } redis { serverAddr ="localhost:6379" db = 0 password ="" cluster ="default" timeout = 0 } zk { cluster ="default" serverAddr ="127.0.0.1:2181" sessionTimeout = 6000 connectTimeout = 2000 username ="" password ="" } 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 ="nacos" nacos { serverAddr ="192.168.0.1:8848" namespace ="" 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 = 6000 connectTimeout = 2000 username ="" password ="" } etcd3 { serverAddr ="http://localhost:2379" } file { name ="file.conf" }} |
3、启动seata
|
1
2
3
4
5
6
7
|
docker run --name seata -d \-e SEATA_PORT=8091 \-v /opt/seata/conf/registry.conf:/seata-server/resources/registry.conf \-v /opt/seata/logs:/root/logs \--privileged=true \-p 8091:8091 \ seataio/seata-server |
目前已经可以在nacos中查看到了
如果你想要将配置文件配置到nacos上的话那就继续看
1、首先去github上下载seata的源码放服务器上

2、进入script/conf-center,修改conf.txt的配置,我把我的粘贴出来,期中遇到了nacos初始化错误的问题,不能有空的,要不不传要不不能为空,屏蔽也不可以
注意这个参数service.vgroupMapping.my_test_tx_group=default,需要和yml文件中的格式一样,尤其是vgroupMapping
yml配置文件中不要配置seata.config和seata.register
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
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=3service.vgroupMapping.my_test_tx_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=5client.rm.tableMetaCheckEnable=falseclient.rm.tableMetaCheckerInterval=60000client.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=2000store.lock.mode=filestore.session.mode=filestore.publicKey=1store.file.dir=file_store/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.Driverstore.db.url=jdbc:mysql://ip:3306/seata?useUnicode=true&rewriteBatchedStatements=truestore.db.user=rootstore.db.password=123456store.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.mode=singlestore.redis.single.host=127.0.0.1store.redis.single.port=6379store.redis.sentinel.masterName=masterstore.redis.sentinel.sentinelHosts=127.0.0.1store.redis.maxConn=10store.redis.minConn=1store.redis.maxTotal=100store.redis.database=0store.redis.password=redisstore.redis.queryLimit=100server.recovery.committingRetryPeriod=1000server.recovery.asynCommittingRetryPeriod=1000server.recovery.rollbackingRetryPeriod=1000server.recovery.timeoutRetryPeriod=1000server.maxCommitRetryTimeout=-1server.maxRollbackRetryTimeout=-1server.rollbackRetryTimeoutUnlockEnable=falseclient.undo.dataValidation=trueclient.undo.logSerialization=jacksonclient.undo.onlyCareUpdateColumns=trueserver.undo.logSaveDays=7server.undo.logDeletePeriod=86400000client.undo.logTable=undo_logclient.undo.compress.enable=trueclient.undo.compress.type=zipclient.undo.compress.threshold=64klog.exceptionRate=100transport.serialization=seatatransport.compressor=nonemetrics.enabled=falsemetrics.registryType=compactmetrics.exporterList=prometheusmetrics.exporterPrometheusPort=9898 |
2、在nacos网站上创建命名空间

将命名空间id记录下来,下面需要使用
2、然后进入nacos路径执行以下命令
|
1
|
sh nacos-config.sh -h ip -p 8848 -g SEATA_GROUP -t 命名空间id |
sh nacos-config.sh
-h 172.16.9.48 配置中心的ip
-p 8848 配置中心的端口
-g SEATA_GROUP group名字
-t 55730921-9411-4004-973c-156f01c31c1b 命名空间的id,就是前面创建之后的id

3、执行成功之后就可以在nacos上看到配置信息了

4、重启seata
|
1
|
docker restart seata |
浙公网安备 33010602011771号