若依clound==>seata1.5.2与nacos集成

1、解压seata1.5.2执行sql语句,并且在自己的业务数据库也要加上undo的表

2、修改seata的conf目录下的application.yml文件

server:
  port: 7091
 
spring:
  application:
    name: seata-server
 
logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash
 
console:
  user:
    username: seata
    password: seata
 
seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      namespace: cbd769d5-ef57-4afa-8ecb-79112a465d09             #此处不填写,将会默认使用DEFAULT_GROUP
      group: SEATA_GROUP
      username: nacos         #nacos的账户(请自行修改)
      password: nacos         #nacos的密码(请自行修改)
      data-id: seataServer.yml #对应文章后边在nacos中添加的配置
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace: cbd769d5-ef57-4afa-8ecb-79112a465d09              #此处不填写,将会默认使用DEFAULT_GROUP
      cluster: default
      username: nacos         #nacos的账户(请自行修改)
      password: nacos         #nacos的密码(请自行修改)
  #store:
    # support: file 、 db 、 redis
   # mode: file
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

上面配置设置了namespace,如果你的nacos没有命名空间可以不写

3、nacos增加seataServer.yml的配置

service:
  vgroupMapping:
    XXX-system-group: default
    XXX-exp-group: default
store:
  db:
    datasource: druid
    dbType: mysql
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://XXX:3306/ry-seata?useUnicode=true
    user: XXX
    password: XXX
    globalTable: global_table
    lockTable: lock_table
    branchTable: branch_table
    distributedLockTable: distributed_lock
    maxConn: 30
    maxWait: 5000
    minConn: 5
    queryLimit: 100
  mode: db

XXX-exp、XXX-system需要用到seata,所以上面的对这两个服务进行了配置

4、对上面的XXX-exp、XXX-system服务在nacos配置vgroupMapping命名的配置文件

里面内容:default 格式text

然后启动seata

5、代码加入注解

在需要用到事务的入口方法上加上上面的注解

在入口方法里面调用了别的服务的方法,在那个方法加入注解如下

这里的方法注解必须是

@Transactional(propagation = Propagation.REQUIRES_NEW)

6、若依的全局异常处理会拦截掉异常,导致seata不回滚,所以对这个类进行了处理

服务降级的fallback会对这个异常进一步处理,所以需要对调用服务的fallback进行处理

到此,seata的事务就处理完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值