-
Notifications
You must be signed in to change notification settings - Fork 26.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tri怎么实现异常重放呢 #9310
Comments
由于 tri 协议使用的是 pb 作为序列化,对异常的支持较差,并且异常是通过 http2的 header 部分进行传输的,这部分是有大小限制的。所以对于异常没有进行序列化传输。 |
参考 #8369 实现 |
参考 #8369 的实现,确实能在A -> B B端抛出异常A捕获,但是在A -> B -> C C端抛出的异常,无法传递到A,在B只会触发failfast超时的onError。 @EarthChen |
重写onResponse时,得把异常的stacktrace给设置为null。不然,只会被MonitorFilter的超时异常提前抛出,就调用onError了 if (className.startsWith("java.") || className.startsWith("javax.")) { |
dubbo.version=3.0.4
dubbo.protocol=tri
provider throw的所有异常在consumer端都会被包装为RpcException。
怎么能在consumer端重放provider发生的异常呢
这里是UnaryClientStream$UnaryClientTransportObserver#getThrowable
consumer处理异常时都会被包装为RpcException
The text was updated successfully, but these errors were encountered: