Open Owater opened 2 years ago
先对齐使用版本,你的client用的1.4.0
是不是用的hikari?升级最新版client应该就解决了,或者改用druid或手动代理
先对齐使用版本,你的client用的1.4.0
1.4.2、1.4.1、1.4.0 都试了一遍,结果都一样
是不是用的hikari?升级最新版client应该就解决了,或者改用druid或手动代理
是的,用的是Springboot 2.5.4 自带的hikari,一开始集成的时候用了最新的nacos-client 2.x版本,但一直报错无法找到seata的服务,所以才降到1.4.2版本
it looks like a datasource proxy problem at startup.
it looks like a datasource proxy problem at startup.
yes,只要出现dataSourceProxy=null的情况,就会出现rpc 超时30s
DataSourceManager.class
@Override
public BranchStatus branchRollback(BranchType branchType, String xid, long branchId, String resourceId,
String applicationData) throws TransactionException {
DataSourceProxy dataSourceProxy = get(resourceId);
if (dataSourceProxy == null) {
// 此处抛出错误了,回滚的时候,A服务 获取 B服务 的mysql 链接,此时的resourceId是 B服务 数据库的链接,而dataSourceCache 里没有 B服务 数据库的链接
throw new ShouldNeverHappenException();
}
....省略
}
it looks like a datasource proxy problem at startup.
yes,只要出现dataSourceProxy=null的情况,就会出现rpc 超时30s
DataSourceManager.class
@Override public BranchStatus branchRollback(BranchType branchType, String xid, long branchId, String resourceId, String applicationData) throws TransactionException { DataSourceProxy dataSourceProxy = get(resourceId); if (dataSourceProxy == null) { // 此处抛出错误了,回滚的时候,A服务 获取 B服务 的mysql 链接,此时的resourceId是 B服务 数据库的链接,而dataSourceCache 里没有 B服务 数据库的链接 throw new ShouldNeverHappenException(); } ....省略 }
那应该我记错了,应该是develop对这个情况进行了进一步修复,改为druid会解决,或者尝试手动代理,关闭自动代理
我也遇到过这个问题 原因:本地开发存在超大事务的情况下,seata向lock_table中记录的数据量很多,seata-server的数据库又是延迟较高的远程数据库,这个过程超过了30秒,导致报错。 解决:修改seata-server的存储库为低延迟的本地库。1.5.x版本可以设置transport.rpcTcRequestTimeout参数增加超时时间
Ⅰ. Issue Description
A服务 调用 B服务,A服务发生失败 然后开始回滚,此时要么A服务会出现rpc timeout,要么B服务会出现rpc timeout
而且是seata集群模式情况下,有可能会出现此错误,概率性挺高的,而且通常是项目刚启动的时候
Ⅱ. Describe what happened
A服务发生如下报错:
B服务发生如下报错:
seata发生如下报错
Ⅲ. Environment: