gpt4 book ai didi

java - Zipkin,使用现有库处理与 Apache Kafka 连接的微服务中的跟踪

转载 作者:行者123 更新时间:2023-11-30 08:34:39 25 4
gpt4 key购买 nike

我想在我的微服务架构中实现跟踪。我使用 Apache Kafka 作为消息代理,我没有使用 Spring Framework。追踪对我来说是一个新概念。起初我想创建自己的实现,但现在我想使用现有的库。 Brave 看起来像我想要使用的那个。我想知道是否有一些关于如何执行此操作的指南、示例或文档。 Github 页面上的文档很少,我发现很难开始使用 Brave。或者也许有更好的库和适当的文档,更容易使用。我将关注 Apache HTrace,因为它看起来很有前途。一些入门指南会很好。

最佳答案

有很多方法可以回答这个问题,但我将从“单向”的角度来回答。不过,简短的回答是,我认为您现在必须推出自己的产品!

虽然 Kafka 可以以多种方式使用,但它可以用作单向单一生产者单一消费者消息的传输。此操作类似于普通的单向 RPC,您有请求但没有响应。

在 Zipkin 中,一个 RPC 跨度通常是请求-响应。例如,您会看到客户端发送到服务器的时间,以及返回客户端的方式。单向是您忽略另一侧的地方。跨度以“cs”(客户端发送)开始,以“sr”(服务器接收)结束。

将此映射到 Kafka,您将在生成消息时将客户端标记为已发送,在消费者收到消息时将服务器标记为已接收。

Kafka 的诀窍在于没有合适的地方来填充跟踪上下文。这是因为与许多消息系统不同,Kafka 消息中没有 header 。如果没有跟踪上下文,您将不知道自己正在完成哪个跟踪(或跨度)!

“hack”方法是将跟踪标识符填充为消息 key 。一种不那么棘手的方法是协调一个主体包装器,您可以将跟踪上下文嵌套到其中。

这是前者的一个例子:

https://gist.github.com/adriancole/76d94054b77e3be338bd75424ca8ba30

关于java - Zipkin,使用现有库处理与 Apache Kafka 连接的微服务中的跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com