赞
踩
- <!-- SpringCloud Seata 组件-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-seata</artifactId>
- <version>${alibaba.seata}</version>
- <exclusions>
- <exclusion>
- <groupId>io.seata</groupId>
- <artifactId>seata-all</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>io.seata</groupId>
- <artifactId>seata-spring-boot-starter</artifactId>
- <version>${seata}</version>
- </dependency>
- #====================================Seata Config===============================================
- seata:
- enabled: true
- tx-service-group: my_test_tx_group # 1 事务群组(可以每个应用独立取名,也可以使用相同的名字)这个需要跟nacos的配置名字保持一致
- registry:
- type: nacos
- nacos:
- server-addr: ${nacos-addr} #nacos地址 localhost:8848
- application: service-seata
- namespace: seata #seata在nacos中配置的命名空间
- group: SEATA_GROUP
- cluster: default
- username: nacos
- password: nacos
- config:
- type: nacos
- nacos:
- server-addr: ${nacos-addr} #nacos地址 localhost:8848
- namespace: seata #seata在nacos中配置的命名空间
- group: SEATA_GROUP
- username: nacos
- password: nacos
- ## transaction log store, only used in seata-server
- store {
- ## store mode: file、db、redis
- mode = "db" ##将file改为db
- ## file store property
- file {
- ## store location dir
- dir = "sessionStore"
- # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
- maxBranchSessionSize = 16384
- # globe session size , if exceeded throws exceptions
- maxGlobalSessionSize = 512
- # file buffer size , if exceeded allocate new buffer
- fileWriteBufferCacheSize = 16384
- # when recover batch read size
- sessionReloadReadSize = 100
- # async, sync
- flushDiskMode = async
- }
- ## 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/db_seata" ##修改为自己的数据库连接
- user = "root"
- password = "123456"
- minConn = 5
- maxConn = 30
- globalTable = "global_table"
- branchTable = "branch_table"
- lockTable = "lock_table"
- queryLimit = 100
- maxWait = 5000
- }
- ## redis store property
- redis {
- host = "127.0.0.1"
- port = "6379"
- password = ""
- database = "0"
- minConn = 1
- maxConn = 10
- queryLimit = 100
- }
- }
- registry {
- # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
- type = "nacos" ##我们使用的是nacos,因此将type修改为nacos
- nacos {
- application = "service-seata" #application填写注册的服务名
- serverAddr = "127.0.0.1:8848" #填写nacos注册中心地址
- group = "SEATA_GROUP" #group是服务注册的分组。可不填,注:是服务分组,不是配置分组
- namespace = "seata" #填写服务注册时的命名空间,可不填,不填默认的时public命名空间
- cluster = "default" #cluster不用改
- username = "nacos"
- password = "nacos"
- }
- file {
- name = "file.conf"
- }
- }
- config {
- # file、nacos 、apollo、zk、consul、etcd3
- type = "nacos"
- nacos {
- serverAddr = "127.0.0.1:8848"
- namespace = "seata"
- group = "SEATA_GROUP"
- username = "nacos"
- password = "nacos"
- }
- file {
- name = "file.conf"
- }
- }
本来我们是需要把file.conf和registry.conf放入我们的项目中的,这里直接导入到nacos。需要什么配置直接从nacos中获取。不需要放在项目中了
在conf目录下
- service.vgroupMapping.my_test_tx_group=default #需要跟配置文件的保持一致
- store.mode=db
- store.db.datasource=druid
- store.db.dbType=mysql
- store.db.driverClassName=com.mysql.jdbc.Driver
- store.db.url=jdbc:mysql://127.0.0.1:3306/db_seata?useUnicode=true #自己的数据库连接地址
- store.db.user=root
- store.db.password=123456
- store.db.minConn=5
- store.db.maxConn=30
- store.db.globalTable=global_table
- store.db.branchTable=branch_table
- store.db.queryLimit=100
- store.db.lockTable=lock_table
- store.db.maxWait=5000
打开git bash。
输入以下命令:
sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t seata -u nacos -w nacos
注:命令解析:-h -p 指定nacos的端口地址;-g 指定配置的分组,注意,是配置的分组;-t 指定命名空间id; -u -w指定nacos的用户名和密码,同样,这里开启了nacos注册和配置认证的才需要指定。
导入成功之后如下图:
db_seata数据库中导入数据表
branch_table
global_table
lock_table
业务数据库中导入数据表
undo_log
配置成功
记得主接口增加注解 @GlobalTransactional
远程调用服务增加注解 @Transactional
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。