这个示例演示了 Dubbo 集成 Zipkin 全链路追踪的基础示例,完整代码请参考 dubbo-samples-tracing-zipkin,此示例共包含三部分内容:
参考 Zipkin’s quick start 安装 Zipkin。
这里我们使用 Docker 来演示如何快速的启动 Zipkin 服务。
紧接着,你可以通过如下链接确认 Zipkin 正常工作 [http://localhost:9411](http://localhost:9411)
跟随 Nacos’s quick start 快速安装并启动 Nacos。
在 IDE 中直接运行 org.apache.dubbo.springboot.demo.provider.ProviderApplication
。
在 IDE 中直接运行 org.apache.dubbo.springboot.demo.consumer.ConsumerApplication
。
在浏览器中打开 http://localhost:9411/zipkin/
查看效果。
从下面两个 starter 中选择一个加入到你的项目中,区别在于 Tracer 的选型不一样,一个是 Opentelemetry,一个是 Brave:
在application.yml中添加如下配置:
Zipkin 的 Sender,是 Exporter 将埋点后的数据进行上报的客户端实现,全部实现可参考
Sender 有很多种实现:
Dubbo Tracing 相关的 starter 目前默认是使用 OKHttpSender,也支持 URLConnectionSender,如果想通过 URLConnectionSender 向 Zipkin 发送 Spans,可直接在 pom 中添加如下依赖:
配置 Zipkin 的 endpoint、connectTimeout、readTimeout
如果想使用其他类型的 Sender ,需要用户在项目中手动注入对应的 Bean,并配置对应的属性,如 KafkaSender:
dubbo-tracing相关的使用在SpringBoot2与3中区别不大,SpringBoot2的案例可参考代码地址。
对于非SpringBoot项目,也可以使用 Dubbo Bootstrap 的 api 方式使用 tracing,详细案例可参考代码地址