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.11k stars 375 forks source link

sofa tracser 与apache dubbo 2.7.8 版本不兼容 #379

Closed hejiarui2015 closed 3 years ago

hejiarui2015 commented 4 years ago

Describe the bug

sofa tracser 与apache dubbo 2.7.8 版本不兼容 由于dubbo 2.7.8 将FutureAdapter 构造函数进行了修改 并且没有进行兼容处理 因此出现改问题

log

Caused by: java.lang.NoSuchMethodError: com.alibaba.dubbo.rpc.protocol.dubbo.FutureAdapter.(Lcom/alibaba/dubbo/remoting/exchange/ResponseFuture;)V\n\tat com.alipay.sofa.tracer.plugins.dubbo26x.DubboSofaTracerFilter.ensureSpanFinishes(DubboSofaTracerFilter.java:201)\n\tat com.alipay.sofa.tracer.plugins.dubbo26x.DubboSofaTracerFilter.doClientFilter(DubboSofaTracerFilter.java:156)\n\tat com.alipay.sofa.tracer.plugins.dubbo26x.DubboSofaTracerFilter.invoke(DubboSofaTracerFilter.java:91)\n\tat com.alibaba.dubbo.rpc.Filter.invoke(Filter.java:29)\n\tat org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)\n\tat org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89)\n\tat org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)\n\tat org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51)\n\tat org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)\n\tat org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69)\n\tat org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)\n\tat org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)\n\tat org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82)\n\t... 80 common frames omitted\n",

Environment

khotyn commented 4 years ago

你应该用

<artifactId>sofa-tracer-dubbo-plugin</artifactId>

而不是

<artifactId>sofa-tracer-dubbo-2.6.x-plugin</artifactId>
hejiarui2015 commented 4 years ago

我用的是 sofa-tracer-dubbo-common-plugin

hejiarui2015 commented 4 years ago

这样配才行:

<dependency>
  <groupId>com.alipay.sofa</groupId>
  <artifactId>tracer-sofa-boot-starter</artifactId>
  <version>3.0.12</version>
  <exclusions>    
    <exclusion>
      <groupId>com.alipay.sofa</groupId>
      <artifactId>sofa-tracer-dubbo-common-plugin</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>com.alipay.sofa</groupId>
  <artifactId>sofa-tracer-dubbo-plugin</artifactId>
  <version>3.0.12</version>
 </dependency>
glmapper commented 4 years ago

@hejiarui2015 sofa-tracer-dubbo-common-plugin 兼容了 2.6.x 和 2.7.x 的, 方便的话可以提供个复现 demo 吗?