在 https://opentracing.io/他们声明opentracing API是:
用于分布式跟踪的供应商中立 API 和检测
好吧,很好,但这在实际应用程序的上下文中实际上意味着什么?
这个Opentracing API实际上由哪些部分组成,它的目的是什么,以及它如何与其他与日志记录相关的系统(如"zipkin"和"jaeger")进行交互
。使用适用于 Java 的 Opentracing API 是否是能够声明"我的应用支持"开放跟踪的要求?
是否有一个Openttrace协议(例如通过网络发送的数据),或者他们只是说openttrace是一个中间层,允许多个其他跟踪框架相互互操作?尤其是这张图让我觉得。
OpenTracing 是您的代码将直接与之交互的 API。
基本上,您的应用程序将使用OpenTracing API进行"检测",并且具体的跟踪器(如Jaeger或Brave/Zipkin)将捕获数据并将其发送到某个地方。这允许应用程序在整个代码中使用中性 API,以便您可以从一个提供程序更改为另一个提供程序,而无需更改整个代码库。
另一种思考方式是,OpenTracing 就像 Java 日志世界中的 SLF4J,而 Jaeger 和 Zipkin 是具体的实现,例如 Java 日志记录世界中的 Log4j。