在https://opentracing.io/上,他们指出opentracing API为:
与供应商无关的API和用于分布式跟踪的工具
好的,但是在实际应用程序的上下文中这实际上意味着什么?
此Opentracing API的实际组成部分是什么,它的目的是什么,以及它如何与其他与日志相关的系统(例如“ zipkin”和“ jaeger”)互动
是否使用Opentracing API for Java才能声明“我的应用程序支持” opentracing?
是否存在一个Opentracing协议(例如,通过有线发送数据),或者他们只是说opentracing是一个中间层,它允许其他多个跟踪框架相互操作? 特别是this diagram让我觉得如此。
答案 0 :(得分:2)
OpenTracing是您的代码将直接与之交互的API。
基本上,您的应用程序将使用OpenTracing API进行“仪表化”,而具体的跟踪器(如Jaeger或Brave / Zipkin)将捕获数据并将其发送到某个地方。这样一来,您的应用程序就可以在整个代码中使用中性的API,这样您就可以从一个提供程序更改为另一个提供程序,而不必更改整个代码库。
另一种思考方式是OpenTracing就像Java日志记录世界中的SLF4J,而Jaeger和Zipkin是具体的实现,例如Java日志记录世界中的Log4j。