1. 概述

JPAAS是一个分布式的开发平台,因此很重要的一件事情就是需要解决分布式事务的问题,JPAAS采用了 SEATA作为平台的 分布式事务解决方案。seata 是阿里的自己在用的分布式事务解决方案,因此可靠性,性能都是毋庸置疑的。

2. 部署步骤

seata 是基于nacos作为配置和注册中心使用的,可以支持高可用,seata 的配置也是基于nacos的。

2.1 创建seata 的事务管理数据库

执行脚本:

2.2 导入seata配置

我们将seata的配置已经导出,只需要在nacos进行导入,导入seata的配置。

这里我们主要需要修改的是几个地方:

2.2.1 数据库的配置:

根据实际情况做相应的更改。

2.2.2 修改事务组(默认不用改)

这个事务组需要在nacos 做相应的配置。

这里需要名称保持一致。

2.2.3 支持MYSQL8

驱动类名修改为:

com.mysql.cj.jdbc.Driver

2.2.4 支持ORACLE

1.修改seata配置信息,数据库类型,数据库驱动,用户名,密码

2.执行oracle数据库环境的seata的数据库脚本

3.将oracle的连接驱动程序jar包复制到服务器当前目录下

2.3 修改 seata 服务的配置

编辑 registry.conf 配置

  1. registry {
  2. # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  3. type = "nacos"
  4. nacos {
  5. application = "seata-server"
  6. serverAddr = "localhost:8848"
  7. namespace = "public"
  8. group = "DEFAULT_GROUP"
  9. cluster = "default"
  10. username = "nacos"
  11. password = "nacos"
  12. }
  13. }
  14. config {
  15. # file、nacos 、apollo、zk、consul、etcd3
  16. type = "nacos"
  17. nacos {
  18. serverAddr = "localhost:8848"
  19. namespace = ""
  20. group = "SEATA_GROUP"
  21. cluster = "default"
  22. username = "nacos"
  23. password = "nacos"
  24. }
  25. }

这里只需要修改 serverAddr 为 nacos 的地址。

2.4 启动SEATA 服务

配置好后,启动 seata server,如果没有报错,我们可以看到 seata server 在nacos中进行注册成功。

启动命令:

nohup ./seata-server.sh -p 8888 -h 192.168.1.10 &

2.5 SEATA 高可用

其实按照上面的配置好后,只需要 多启动几个 seata-server,这样 seata 的集群就搭建好了。

2.6 程序配置

在新建项目时,我们可以这样配置 seata.

  1. seata:
  2. enabled: true
  3. application-id: ${spring.application.name}
  4. tx-service-group: bpm_tx_group
  5. enable-auto-data-source-proxy: true
  6. registry:
  7. type: nacos
  8. nacos:
  9. application: seata-server
  10. server-addr: ${nacos.address}
  11. group: DEFAULT_GROUP
  12. userName: nacos
  13. password: nacos
  14. config:
  15. type: nacos
  16. nacos:
  17. namespace:
  18. serverAddr: ${nacos.address}
  19. group: SEATA_GROUP
  20. cluster: default
  21. userName: nacos
  22. password: nacos

需要改动的地方为:
tx-service-group: bpm_tx_group,这个需要和 nacos 的配置改成一致。
service.vgroupMapping.bpm_tx_group=default

nacos.address配置指向之前配置的 nacos server。

2.7 升级到seata1.3

从 seata 1.2 升级到 1.3 的方法。

1.客户端只需要修改pom.xml 。
2.服务端替换成1.3。

  1. <dependency>
  2. <groupId>io.seata</groupId>
  3. <artifactId>seata-spring-boot-starter</artifactId>
  4. <version>1.3.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.alibaba.cloud</groupId>
  8. <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  9. <version>2.2.0.RELEASE</version>
  10. <exclusions>
  11. <exclusion>
  12. <groupId>io.seata</groupId>
  13. <artifactId>seata-spring-boot-starter</artifactId>
  14. </exclusion>
  15. <exclusion>
  16. <groupId>com.alibaba.cloud</groupId>
  17. <artifactId>spring-cloud-alibaba-seata</artifactId>
  18. </exclusion>
  19. </exclusions>
  20. </dependency>
  21. <dependency>
  22. <groupId>io.seata</groupId>
  23. <artifactId>seata-all</artifactId>
  24. <version>1.3.0</version>
  25. </dependency>
文档更新时间: 2021-03-03 11:21   作者:csx