【问题标题】:What is twitter's Future.trace() method used for?twitter 的 Future.trace() 方法是做什么用的?
【发布时间】:2013-01-13 01:20:13
【问题描述】:
类com.twitter.util.Future有一个方法Future.trace(),返回类型是com.twitter.util.Future.Tracer(这个可以在编译的Java类中找到)
但是,我在原始 Scala code 或 doc 中找不到该方法。你知道我在哪里可以找到该方法的用法或源代码吗?
我这样做的原因:我正在尝试使用 Finagle 跟踪实现我自己的跟踪框架。
【问题讨论】:
标签:
java
scala
twitter
trace
finagle
【解决方案1】:
Future.trace 实际上是Future 对象的旧成员。它用于在每次将两个异步计算与map/flatMap 链接在一起时启用调用堆栈的注册。此功能不是很受欢迎,因此我们将其删除。
如果您想查看跟踪框架,您应该查看 zipkin 和 finagle-zipkin,这基本上是 Google Dapper 的开源实现(请参阅 paper)
【解决方案2】:
是版本问题。
Java代码包有如下签名
<dependency>
<groupId>com.twitter</groupId>
<artifactId>util-core</artifactId>
<version>5.3.1</version>
</dependency>
但文档和源代码> 6.0.5
版本之间的源代码似乎发生了根本性的变化。