sofastack / sofa-tracer

SOFATracer is a component for the distributed system call trace. And through a unified traceId logging the logs of various network calls in the invoking link. These logs can be used for quick discovery of faults, service governance, etc.
Apache License 2.0
1.1k stars 372 forks source link

SOFATracer 不兼容 Dubbo 2.7.2 版本 #230

Closed spiritme1984 closed 5 years ago

spiritme1984 commented 5 years ago

今天把dubbo版本升级到2.7.2发现客户端不能连接到服务端,提示如下: Exception in thread "main" org.apache.dubbo.rpc.RpcException: Failed to invoke the method sayHello in the service cn.jcorn.dubbo.api.GreetingService. Tried 3 times of the providers [192.168.14.179:20880] (1/1) from the registry 127.0.0.1:2181 on the consumer 192.168.14.179 using the dubbo version 2.7.2. Last error is: Invoke remote method timeout. method: sayHello, provider:dubbo://192.168.14.179:20880/cn.jcorn.dubbo.api.GreetingService?anyhost=true&application=dubbo-consumer&bean.name=cn.jcorn.dubbo.api.GreetingService&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=cn.jcorn.dubbo.api.GreetingService&lazy=false&methods=sayHello&pid=8168&register=true&register.ip=192.168.14.179&release=2.7.2&remote.application=dubbo-provider&side=consumer&sticky=false&timestamp=1560388940270,cause: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2019-06-13 09:22:28.877, end time: 2019-06-13 09:22:29.896, client elapsed: 1 ms, server elapsed: 1018 ms, timeout: 1000 ms, request: Request [id=2, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=sayHello, parameterTypes=[class java.lang.String], arguments=[world], attachments={path=cn.jcorn.dubbo.api.GreetingService, input=235, client.serialize.time=0, interface=cn.jcorn.dubbo.api.GreetingService, version=0.0.0}]], channel: /192.168.14.179:58693 -> /192.168.14.179:20880 at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:113) at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:248) at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:78) at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:55) at org.apache.dubbo.common.bytecode.proxy0.sayHello(proxy0.java) at cn.jcorn.dubbo.consumer.Consumer.main(Consumer.java:11) Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2019-06-13 09:22:28.877, end time: 2019-06-13 09:22:29.896, client elapsed: 1 ms, server elapsed: 1018 ms, timeout: 1000 ms, request: Request [id=2, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=sayHello, parameterTypes=[class java.lang.String], arguments=[world], attachments={path=cn.jcorn.dubbo.api.GreetingService, input=235, client.serialize.time=0, interface=cn.jcorn.dubbo.api.GreetingService, version=0.0.0}]], channel: /192.168.14.179:58693 -> /192.168.14.179:20880 at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:54) at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:92) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:82) at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:54) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:82) at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:58) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:82) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$CallbackRegistrationInvoker.invoke(ProtocolFilterWrapper.java:150) at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ... 5 more 试过了dubbo的2.7.1版本可以正常调用,因为这个版本的dubbo有bug所以要升级到2.7.2,但是好像sofaTrace的dubbo插件不支持2.7.2版本的dubbo...

glmapper commented 5 years ago

@spiritme1984 可以提供下 demo 吗

spiritme1984 commented 5 years ago

@spiritme1984 可以提供下 demo 吗

demo地址:https://github.com/spiritme1984/sofaTracePlugin272

glmapper commented 5 years ago

@spiritme1984 可以提供下 demo 吗

demo地址:https://github.com/spiritme1984/sofaTracePlugin272

从你的异常堆栈中貌似没有SOFATracer 相应的异常信息。从你提供的 demo 来看,你没有在申明 dubbo 服务时指定 tracer 的 filter。具体使用可以参考:https://www.sofastack.tech/sofa-tracer/docs/Usage_Of_Dubbo .这里先关闭了,如果有疑问可以再打开。感谢反馈!

spiritme1984 commented 5 years ago

@spiritme1984 可以提供下 demo 吗

demo地址:https://github.com/spiritme1984/sofaTracePlugin272

从你的异常堆栈中貌似没有SOFATracer 相应的异常信息。从你提供的 demo 来看,你没有在申明 dubbo 服务时指定 tracer 的 filter。具体使用可以参考:https://www.sofastack.tech/sofa-tracer/docs/Usage_Of_Dubbo .这里先关闭了,如果有疑问可以再打开。感谢反馈!

demo是dubbo官方提供的例子,例子中在pom中引用了sofa-tracer-dubbo-plugin的依赖消费者就调不到服务提供者,提示上面的异常。把这个依赖删除就能正常调用。目前从现象上看这个依赖导致了dubbo不能正常调用了。并且在我的工作项目中,在XML中配置了filter,提示和demo同样的错误。

glmapper commented 5 years ago

@spiritme1984 可以提供下 demo 吗

demo地址:https://github.com/spiritme1984/sofaTracePlugin272

从你的异常堆栈中貌似没有SOFATracer 相应的异常信息。从你提供的 demo 来看,你没有在申明 dubbo 服务时指定 tracer 的 filter。具体使用可以参考:https://www.sofastack.tech/sofa-tracer/docs/Usage_Of_Dubbo .这里先关闭了,如果有疑问可以再打开。感谢反馈!

demo是dubbo官方提供的例子,例子中在pom中引用了sofa-tracer-dubbo-plugin的依赖消费者就调不到服务提供者,提示上面的异常。把这个依赖删除就能正常调用。目前从现象上看这个依赖导致了dubbo不能正常调用了。并且在我的工作项目中,在XML中配置了filter,提示和demo同样的错误。

大概看了下 dubbo 2.7.2 的发布报告,dubbo 在 2.7.2 版本中对一些类进行了优化,比如Seperate Constants.java into some SubConstants Class,另外 RpcResult 这个类也被移除了,SOFATracer 中有依赖这两个类,从而导致了在 dubbo 2.7.2 版本使用会报错。

spiritme1984 commented 5 years ago

@spiritme1984 可以提供下 demo 吗

demo地址:https://github.com/spiritme1984/sofaTracePlugin272

从你的异常堆栈中貌似没有SOFATracer 相应的异常信息。从你提供的 demo 来看,你没有在申明 dubbo 服务时指定 tracer 的 filter。具体使用可以参考:https://www.sofastack.tech/sofa-tracer/docs/Usage_Of_Dubbo .这里先关闭了,如果有疑问可以再打开。感谢反馈!

demo是dubbo官方提供的例子,例子中在pom中引用了sofa-tracer-dubbo-plugin的依赖消费者就调不到服务提供者,提示上面的异常。把这个依赖删除就能正常调用。目前从现象上看这个依赖导致了dubbo不能正常调用了。并且在我的工作项目中,在XML中配置了filter,提示和demo同样的错误。

大概看了下 dubbo 2.7.2 的发布报告,dubbo 在 2.7.2 版本中对一些类进行了优化,比如Seperate Constants.java into some SubConstants Class,另外 RpcResult 这个类也被移除了,SOFATracer 中有依赖这两个类,从而导致了在 dubbo 2.7.2 版本使用会报错。

嗯,那sofaTrace的dubbo插件版本会进行更新?如果是什么时候能发布新的版本?

glmapper commented 5 years ago

嗯,那sofaTrace的dubbo插件版本会进行更新?如果是什么时候能发布新的版本?

为了保持对低版本兼容,会通过其他方案来做兼容,预计下周发版

spiritme1984 commented 5 years ago

嗯,那sofaTrace的dubbo插件版本会进行更新?如果是什么时候能发布新的版本?

为了保持对低版本兼容,会通过其他方案来做兼容,预计下周发版

好的,那我先不关闭了,等发版了有了解决方案我在关闭这个issue吧

spiritme1984 commented 5 years ago

有更新的解决方案了吗?

glmapper commented 5 years ago

有更新的解决方案了吗?

嗯,在 2.4.1 版本中修复

spiritme1984 commented 5 years ago

有更新的解决方案了吗?

嗯,在 2.4.1 版本中修复

有大概的发布日期吗?

glmapper commented 5 years ago

有大概的发布日期吗?

原计划本周发布一个 SNAPSHOT 版本,但是从 Dubbo 目前存在的相关性能问题来看,SOFATracer 希望等 2.7.3 版本之后再做支持:https://github.com/apache/dubbo/milestone/26

LightShine commented 5 years ago

dubbo 2.7.3已经发布,请问什么时候能修复这个问题?

glmapper commented 5 years ago

dubbo 2.7.3已经发布,请问什么时候能修复这个问题?

本周先发 SNAPSHOT 版本~