首页 > 解决方案 > vert.x 事件总线消息的 Istio 请求跟踪

问题描述

Vert.x 和 kubernetes 齐头并进。如果我使用 istio 作为服务网格,Zipkin 的请求跟踪是否能够跟踪通过事件总线完成的通信?

客户端->[rest/http1]-> 服务-A->[eventbus]-> 服务-B

istio 是否能够跟踪通过事件总线完成的请求?

跟踪页面说 headers 需要在 http 或 grpc 中传播——但是 eventbus 通过 tcp 发送消息——这是否意味着 istio 将无法跟踪请求并显示可视化工具 [瀑布图和所有服务]

Vertx 主页

Eventbus-Vertx 页面

标签: kubernetesmicroservicesvert.xzipkinistio

解决方案


您的示例中的跟踪仅适用于通过 HTTP 协议向服务 A 发出的请求。Istio 目前仅跟踪 HTTP 请求。

您可以通过在消息生产者和接收者中创建跨度来手动跟踪事件总线消息。IIRC vert.x 事件总线不支持每条消息的标头:

https://vertx.io/docs/apidocs/io/vertx/core/eventbus/MessageProducer.html https://vertx.io/docs/apidocs/io/vertx/core/eventbus/DeliveryOptions.html

因此您必须将跟踪 ID 编码到消息正文中并在接收方正确反序列化。


推荐阅读