这里写自定义目录标题
PS:以下报错以seata1.4.0版本为例!!!
一、报错信息
14:20:57.397 [http-nio-9201-exec-1] ERROR c.r.c.s.h.GlobalExceptionHandler - [handleRuntimeException,105] - 请求地址'/online/test',发生未知异常.
io.seata.common.exception.FrameworkException: No available service
二、排查
1.检查 Seata Server 是否正常运行。
在 /bin/seata-server.bat 启动服务,查看是否可以正常运行,如图所示:
2.确认服务和seata服务是否正确注册到注册中心。
ps:本人使用的nacos作为注册中心,若小伙伴没有使用注册中心,可以略过哈~
3.检查seata的配置信息。
seata1.4.0的配置文件目录为:
/conf/registry.conf
registry.conf 配置文件:
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10
nacos {
application = "seata-server1"
serverAddr = "127.0.0.1:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "127.0.0.1:8848"
namespace = ""
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
}
}
registry 和 config 里面的 type 参数需要根据实际情况赋值,作者在这里用的是nacos。
4.检查在nacos中的服务的配置文件(yml)
seata:
tx-service-group: your-transaction-group
service:
vgroup-mapping:
your-transaction-group: default #将应用名称映射到默认的事务分组
enabled: true
其中 your-transaction-group 替换为您的事务分组名称。
若没有使用 nacos,则在服务中的 resource 目录下的配置文件中进行检查。
重点来了!!!
若您跟小编一样,使用的若依的微服务框架,feigh 调用自己新建的 springboot 接口,则需要在 springboot 中加上以下配置:
# seata配置
seata:
# Seata 应用编号,默认为 ${spring.application.name}
application-id: ruoyi-system
# Seata 事务组编号,用于 TC 集群名
tx-service-group: your-transaction-group
其中 your-transaction-group 要与微服务的配置保持一致!!!