# seata-springcloud
**Repository Path**: distransaction/seata-springcloud
## Basic Information
- **Project Name**: seata-springcloud
- **Description**: 通过seata实现分布式事务,微服务通过springcloud实现。
- **Primary Language**: Java
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-03-12
- **Last Updated**: 2021-08-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# seata-springcloud
#### 介绍
通过seata实现分布式事务,微服务通过springcloud实现。
#### 软件架构
SpringCloud微服务架构,为实现事务一致性,通过seata以无侵入业务代码方式进行分布式事务处理。
#### 安装教程
1. SpringCloud配置
查看SpringBoot与SpringCloud版本对应关系:https://start.spring.io/actuator/info
本项目采用SpringBoot:2.2.5.RELEASE,SpringCloud:Hoxton.SR10
2. seata-server安装
参考sql/seata.sql 如果是store.mode=file模式无须创建
Docker安装:docker pull seataio/seata-server:1.2.0
docker run -d --name seata-server -e SEATA_IP=修改IP地址 -e SEATA_PORT=8091 -p 8091:8091 -v /usr/local/seata/:/seata-server/resources/ seataio/seata-server:1.2.0
或者下载seata-server:https://github.com/seata/seata/releases/download/v1.2.0/seata-server-1.2.0.zip
修改配置文件seata/conf/file.conf 用户名/密码:seata/seata
修改配置文件seata/conf/registry.conf registry.type = "eureka"
3. provider安装
参考sql/user.sql
配置eureka-provider-user的yml文件,配置数据库连接和端口,以及jpa对应的hibernate方式
配置eureka-provider-usercoupon的yml文件,配置数据库连接和端口,以及jpa对应的hibernate方式
4. seata-client配置
配置pom依赖包
com.alibaba.cloud
spring-cloud-alibaba-seata
2.2.0.RELEASE
io.seata
seata-spring-boot-starter
io.seata
seata-spring-boot-starter
1.2.0
配置DataSourceProxyConfig代理类
拷贝file.conf.example和registry.conf 修改store.mode 如果是db则需要配置数据库连接
修改service.vgroup_mapping #注意vgroupMapping的修改(1.1.0以后)
在每个库下面创建undo_log表sql/undo_log.sql
4. seata相关配置
spring:
application:
name: eureka-provider-user
cloud:
alibaba:
seata:
tx-service-group: ${spring.application.name}-tx-group
file.conf
#注意vgroupMapping的修改(1.1.0以后)
service {
#vgroup->rgroup 参考spring.cloud.alibaba.seata.tx-service-group=eureka-provider-usercoupon-tx-group
vgroupMapping.eureka-provider-user-tx-group = "default"
}
5. feign添加
配置文件中添加
#是否熔断处理
feign:
hystrix:
enabled: true
#解决客户端发现不了问题
ribbon:
eureka:
enabled: true
#### 使用说明
1. Fork 本仓库
新建 Feat_xxx 分支
git clone 分支
or
git clone https://gitee.com/distransaction/seata-springcloud.git
2. 创建数据库表
执行sql/*.sql
maven seata-springcloud(root) clean package
启动eureka-server
java -jar eureka-server-0.0.1.jar --spring.profiles.active=server1
java -jar eureka-server-0.0.1.jar --spring.profiles.active=server2
查看注册节点
http://eurekaserver1:8761/
启动seata-server
./seata-server.sh
启动eureka-provider-usercoupon
启动eureka-provider-user
造数据 用户id对应金额为1万元
http://localhost:8801/user/update?userId=1&userMoney=10000
3. 业务测试
测试正常业务
http://localhost:8801/user/testDTrans
测试回滚业务
http://localhost:8801/user/testDTransFall
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)