【发布时间】:2020-05-12 18:31:40
【问题描述】:
如何使用 Vertx 微服务 在 java 中构建 X 射线检测? vertx aws-xray 是否有可用的 sdk?我使用了 java sdk 但没有获取服务地图。
【问题讨论】:
标签: java microservices vert.x aws-xray
如何使用 Vertx 微服务 在 java 中构建 X 射线检测? vertx aws-xray 是否有可用的 sdk?我使用了 java sdk 但没有获取服务地图。
【问题讨论】:
标签: java microservices vert.x aws-xray
据我所知,X-Ray 不适用于任何形式的 Vert.x。主要原因是在 X-Ray 中传播 span 的主要方法是使用 Threadlocal 来跟踪状态。
Threadlocal 不能在像 Vert.x 这样的响应式框架中工作,因为在这类框架的线程池中的线程之间会发生上下文跳转。 Spring WebFlux 也有同样的问题。
我们已与 AWS 支持和亚马逊代表联系,答案始终是“我们会调查此事”,但他们似乎不太感兴趣,因为我怀疑它需要完全重写才能正常工作。
【讨论】:
目前,适用于 Java 的 AWS X-Ray 开发工具包不为 Vert.x 微服务架构提供中间件或跟踪支持。唯一受支持的框架是 Tomcat 和 Spring。我很好奇您如何在应用程序中使用 Java SDK。
跟踪您的应用程序的一种方法是使用custom segments and subsegments(尽管这意味着您必须进行大量手动检测工作)。
您可以使用beginSegment 方法为您的应用程序开始一个段并设置appropriate properties。然后,您可以为下游调用或您想要跟踪的任何代码创建subsegments。 Segment和Subsegment的语义请参考doc。
【讨论】: