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
下一篇:
微服务:微服务讲解及常用的服务间调用方式