1,先部署好nacos并启动localhost:8848/nacos
2,下载springcloudalibaba 版本对应的seata版本
下载seata启动包
https://github.com/seata/seata/releases
下载scrip配置文件包
https://github.com/seata/seata/tree/master/script
![在这里插入图片描述](https://img-blog.csdnimg.cn/df23f18b4f3b4b52922b55023d35caa0.png)
3,修改配置文件 C:\Users\Administrator\Desktop\seata-server-1.4.0\seata\conf
修改file.confi
![在这里插入图片描述](https://img-blog.csdnimg.cn/64c5dbe44586492685c3a71d20f297d3.png)
db配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/23396fed61fb4333bed3562efc52514a.png)
4,修改registry.conf
![在这里插入图片描述](https://img-blog.csdnimg.cn/921f0a92469e45919ea2c279dbcc2cda.png)
配置config
![在这里插入图片描述](https://img-blog.csdnimg.cn/ca72d56f3238418b8e3d47be50a3fde8.png)
5,1配置事务分组名称,可用于异地机房灾备
C:\Users\Administrator\Desktop\seata-server-1.4.0\seata\script\config-center
修改 config.txt
搜索 store.mode=
![在这里插入图片描述](https://img-blog.csdnimg.cn/73283d1355cf4e2aa270a95244a128eb.png)
5.2搜索service.vgroupMapping
改为自己想要的分组名称,不同地区灾备
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4ffb64248a543c1a89846b92c261f73.png)
5.3进入到script/config-center/nacos 里面,
执行nacos-config.sh 将配置文件写入到nacos注册中心,这里我们需要下载并安装git,不然无法执行
![在这里插入图片描述](https://img-blog.csdnimg.cn/fcedaecbaece454197a943d5d6cce3a4.png)
5.4注册后将有很多的配置文件,比较慢,耐心等待
![在这里插入图片描述](https://img-blog.csdnimg.cn/41163e89bb0849aaa15ab483fbd46e03.png)
代码端搭建
stock-server端搭建
6.1创建两个微服务
6.2编写order-seata启动类
package com.parent;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@MapperScan("com.parent.mapper")
@EnableDiscoveryClient
@EnableTransactionManagement //mybatisplus 配置 锁插件...... 本地事务
@EnableFeignClients
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
6.3编写application.yml配置文件 order-server的
server:
port: 18065
spring:
main:
allow-circular-references: true
allow-bean-definition-overriding: true #允许bean重复定义
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #Nacos服务注册中心地址 119.29.140.23
group: default
alibaba:
seata:
tx-service-group: shenzheng # 配置事务分组
datasource:
#测试库
url: jdbc:mysql://localhost:3306/seata_order?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: "root"
# hch@168state
#线上库 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=hch@168state -d mysql:5.7
# url: jdbc:mysql://gz-cdb-ga5jkt2h.sql.tencentcdb.com:57667/hch_parent_pro?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
# username: root
# password: 788UORxeeEAiAyyvXz1aePfbIl9OGFd7
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: order-server
mybatis:
# 指定实体类包路径
typeAliasesPackage: com.parent.entity
mapper-locations: classpath*:mapper/*.xml
# 配置驼峰下划线
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 打印sql
logging:
level:
com.parent.mapper : debug
seata:
#注册中心
registry:
# 配置seata的注册中心, 告诉seata client 怎么去访问seata server(TC)
type: nacos
nacos:
server-addr: 127.0.0.1:8848 # seata server 所在的nacos服务地址
application: seata-server # seata ser的服务名默认,可以不配
username: nacos
password: nacos
group: SEATA_GROUP # seata server 所在的组,默认就是SEATA_GROUP 不配置默认
#配置中心
config:
# 配置seata的配置中心, 可以读取关于seata client的一些配置
type: nacos
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
group: SEATA_GROUP
6.4父工程依赖
<modules>
<module>order-seata</module>
<module>stock-seata</module>
</modules>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.boot.start.version>2.6.6</spring.boot.start.version>
<!-- 微服务属性 -->
<spring-cloud.version>2021.0.0</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<alibaba.nacos.version>2.0.4</alibaba.nacos.version>
<alibaba.druid.version>1.2.9</alibaba.druid.version>
<!-- 数据库驱动 -->
<mysql-connector-java.version>8.0.25</mysql-connector-java