istio-jaeger-spring boot调用链配置

istio-jaeger-spring boot调用链配置

虽然,istio ingress controller已经生成了jaeger 记录所需要的信息,但是多个分布式之间没法清晰记录相互之间的依赖关系。所以相关的项目还需要加入特殊配置。

如:有四个服务 portal、service-a、service-b、service-c,它们之间的关系如下

portal调用服务service-a和service-c,service-a调用service-b

服务加入特殊处理前Jaeger ui记录的结果为:

服务特殊处理后:

1.实现request header信息传递

写子类实现 HttpSpanInjector、HttpSpanExtractor实现分布式调用链http header信息的传递(spanid,traceid,span-parentid....)

2.服务启动类注入类

@Bean
HttpSpanInjector istioHttpSpanInjector() {
return new IstioHttpSpanInjector();
}

@Bean
HttpSpanExtractor istioHttpSpanExtractor() {
return new IstioHttpSpanExtractor();
}

 3.具体配置参考项目

https://github.com/jiuchongxiao/istio-sample-springboot-jaeger-v0.3

猜你喜欢

转载自www.cnblogs.com/jiuchongxiao/p/9051051.html