SpringCloud+Nacos整合Seata
资料下载(本文版本1.3.0) seata: https://github.com/seata/seata **seata-server:**https://github.com/seata/seata/releases **参考文档:**http://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
1. nacos配置
修改seata源码中 ..seata-1.3.0scriptconfig-center下config.txt
service.vgroupMapping.my_test_tx_group=default # 更改my_test_tx_group为自己服务名称,多个服务复制即可,需要与步骤 3 配置对应 service.vgroupMapping.platform-provider-card-group=default service.vgroupMapping.platform-provider-ring-group=default
将 Seata 配置添加到 Nacos 中
cd ..seata-1.3.0scriptconfig-center acos sh nacos-config.sh localhost
成功后提示init nacos config finished, please start seata-server
在 Nacos 管理页面应该可以看到有多个 Group 为SEATA_GROUP的配置
2. seata-server配置
修改配置文件file.conf
mode修改为db模式(db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些,按实际需求调整模式)
store {
## 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"
## mysql/oracle/postgresql/h2/oceanbase etc.
dbType = "mysql"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://127.0.0.1:3306/seata"
user = "root"
password = "root"
minConn = 5
maxConn = 30
globalTable = "global_table"
branchTable = "branch_table"
lockTable = "lock_table"
queryLimit = 100
maxWait = 5000
}
}
修改配置文件registry.conf
切换为nacos模式,group = "SEATA_GROUP" 、cluster = "default"后面配置需对应
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "127.0.0.1:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = ""
password = ""
}
}
启动seata-server
cmd运行seata-server.bat,这种方法如有错误可看到日志进行处理,不会闪退。
启动成功后会在nacos中看到seata-server服务
3. 项目集成配置
引入seata依赖,根据官方参考文档这里选择了seata-spring-boot-starter配置较简单
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
添加seata相关配置信息,需要在每个服务中配置,并修改tx-service-group为服务名称,并与步骤 1 中nacos配置保持一致
seata:
application-id: ${
spring.application.name}
#需要和nacos中配置保持一致
tx-service-group: platform-provider-ring-group
config:
type: nacos
nacos:
#需要和server在同一个注册中心下
serverAddr: 127.0.0.1:8848
#需要server端(registry和config)、nacos配置client端(registry和config)保持一致
group: SEATA_GROUP
registry:
type: nacos
nacos:
#需要和server端保持一致,即server在nacos中的名称,默认为seata-server
application: seata-server
serverAddr: 127.0.0.1:8848
#需要server端(registry和config)、nacos配置client端(registry和config)保持一致
group: SEATA_GROUP
下一篇:
微服务:微服务讲解及常用的服务间调用方式
