SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截( 二 )

seata的mysql脚本
修改Seata 配置中心&注册中心修改Seata的配置
# 修改Seata配置cd /usr/local/software/seata/confvi registry.conf

SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
注:修改成自己的nacos信息
registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofatype = "nacos"loadBalance = "RandomLoadBalance"loadBalanceVirtualNodes = 10nacos {application = "seata-server"serverAddr = "47.116.143.16:8848"group = "SEATA_GROUP"namespace = ""cluster = "default"username = "nacos"password = "nacos"}}config {# file、nacos 、apollo、zk、consul、etcd3type = "nacos"nacos {serverAddr = "47.116.143.16:8848"namespace = ""group = "SEATA_GROUP"username = "nacos"password = "nacos"}}因为Seata的配置中心是nacos , 需要把Seata的配置 , 通过脚本推送到nacos中
官网地址:https://seata.io/zh-cn/docs/user/configuration/nacos.html
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
脚本地址:https://github.com/seata/seata/blob/develop/script/config-center/nacos/nacos-config.sh
config.txt地址(可以暂时不修改配置参数 , 直接到nacos中修改配置):https://github.com/seata/seata/blob/develop/script/config-center/config.txt
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
将Seata配置参数推送到nacos配置中心
# 1、将github中的nacos-config.sh , 传到服务器上 , 目录为:/usr/local/software/seata/conf# 我这边使用的是 , 将脚本文件拷出 , 在服务创建文件夹 , 赋予权限touch nacos-config.shchmod +x nacos-config.sh# 2、将config.txt , 放到服务器上 , 目录为:/usr/local/software/seata执行脚本
sh nacos-config.sh -h 47.116.143.16 -p 8848 -g SEATA_GROUP -u nacos -w nacos-h:nacos主机地址-p:nacos端口号-g:nacos分组-t:nacos命名空间-u:nacos账号-w:nacos密码
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
推送成功 , 已将Seata配置参数推送到Nacos配置中心
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
在nacos配置中心里 , 修改Seata参数 , 具体修改参考官网如下
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图

SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
具体config.txt里的参数解释:https://seata.io/zh-cn/docs/user/configurations.html
新建2个配置需要与微服务中的配置对应上
service.vgroupMapping.${spring.alibaba.seata.tx-service-group}=default如下service.vgroupMapping.order_service_group=defaultservice.vgroupMapping.product_service_group=default注意:分组为:SEATA_GROUP
SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截

文章插图
启动Seata服务
  • ./seata-server.sh启动 , 默认端口8091(守护进程方式启动 nohup ./seata-server.sh &)
注意:如果seata部署在服务器 , 微服务在本地启动的话 , 2个服务不在一个局域网下 , 因此没法通信 , 启动Seata时 , 需要指定ip和端口号
sh seata-server.sh -p 8091 -h 47.116.143.16Seata AT模式日期序列化问题解决方案后端服务引入kryo依赖<dependency><groupId>com.esotericsoftware</groupId><artifactId>kryo</artifactId><version>4.0.2</version></dependency><dependency><groupId>de.javakaffee</groupId><artifactId>kryo-serializers</artifactId><version>0.42</version></dependency>

经验总结扩展阅读