根据dubbo的Filter和ExtensionFactory扩展方式,自己扩展了一个Filter和ExtensionFactory
`@activate(group = {Constants.PROVIDER, Constants.CONSUMER}, value = "tracing")
public final class TracingFilter implements Filter {
private static Logger logger = LoggerFactory.getLogger(TracingFilter.class);
Tracer tracer;
TraceContext.Extractor<Map<String, String>> extractor;
TraceContext.Injector<Map<String, String>> injector;
public void setTracing(Tracing tracing) {
tracer = tracing.tracer();
extractor = tracing.propagation().extractor(GETTER);
injector = tracing.propagation().injector(SETTER);
}
@OverRide
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
logger.info("Dubbo Parameters ==>> " + invoker.getUrl().getParameters());
logger.info("Interface ==>> " + buildSpanName(invoker, invocation));
if (tracer == null) {
logger.info("Tracer is null.");
return invoker.invoke(invocation);
}
//do something...
}`
`public class TracingExtensionFactory implements ExtensionFactory {
@Autowired
Tracing tracing;
@Override
public <T> T getExtension(Class<T> type, String name) {
if (type != Tracing.class) {
return null;
}
if (tracing == null) {
return null;
}
return (T) tracing;
}
}`
`@Configuration
@ConditionalOnProperty(name = "dubbo.zipkin.enabled", matchIfMissing = false, havingValue = "true")
public class TracingConfiguration {
@Value("${spring.application.name}")
private String serverName = "UNKNOWN";
@Value("${dubbo.zipkin.endpoint}")
private String endpoint = "http://localhost:9411/api/v2/spans";
@Value("${dubbo.zipkin.rate}")
private float rate = 1.0f;
@Bean
public Sender sender() {
return OkHttpSender.create(endpoint);
}
@Bean
public AsyncReporter<Span> spanReporter() {
return AsyncReporter.create(sender());
}
@Bean
public Tracing tracing() {
return Tracing.newBuilder()
.localServiceName(serverName)
.spanReporter(spanReporter())
.sampler(Sampler.create(rate))
.build();
}
}`
配置如下:



在本机spring boot方式启动时,可以正常进入filter,并执行后续逻辑
但在使用阿里云EDAS环境时,始终进入不了自己扩展的Filter和ExtensionFactory
请问这与EDAS环境有关吗?如何解决?
for example:
https://github.com/34176470/springboot-dubbo-zipkin-brave.git
根据dubbo的Filter和ExtensionFactory扩展方式,自己扩展了一个Filter和ExtensionFactory
`@activate(group = {Constants.PROVIDER, Constants.CONSUMER}, value = "tracing")
public final class TracingFilter implements Filter {
private static Logger logger = LoggerFactory.getLogger(TracingFilter.class);
Tracer tracer;
TraceContext.Extractor<Map<String, String>> extractor;
TraceContext.Injector<Map<String, String>> injector;
public void setTracing(Tracing tracing) {
tracer = tracing.tracer();
extractor = tracing.propagation().extractor(GETTER);
injector = tracing.propagation().injector(SETTER);
}
@OverRide
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
logger.info("Dubbo Parameters ==>> " + invoker.getUrl().getParameters());
logger.info("Interface ==>> " + buildSpanName(invoker, invocation));
}`
`public class TracingExtensionFactory implements ExtensionFactory {
}`
`@Configuration
@ConditionalOnProperty(name = "dubbo.zipkin.enabled", matchIfMissing = false, havingValue = "true")
public class TracingConfiguration {
}`
配置如下:

在本机spring boot方式启动时,可以正常进入filter,并执行后续逻辑
但在使用阿里云EDAS环境时,始终进入不了自己扩展的Filter和ExtensionFactory
请问这与EDAS环境有关吗?如何解决?
for example:
https://github.com/34176470/springboot-dubbo-zipkin-brave.git