15.8. 检测生产者和消费者进行追踪
在 Kafka 生产者和消费者中启用追踪的检测应用程序代码。使用 decorator 模式或拦截器来检测您的 Java 制作者和消费者应用程序代码进行追踪。然后,您可以在生成信息或从主题检索时记录 trace。
OpenTelemetry 和 OpenTracing 检测项目提供支持生成者和消费者检测的类。
- decorator 检测
- 对于 decorator 检测,请为追踪创建修改后的制作者或消费者实例。OpenTelemetry 和 OpenTracing 的 decorator 检测不同。
- 拦截器检测
- 对于拦截器检测,在消费者或生成者配置中添加追踪功能。OpenTelemetry 和 OpenTracing 的拦截器检测相同。
先决条件
您已为 客户端初始化了追踪。
您可以通过在项目中添加追踪 JAR 作为依赖项来启用制作者和消费者应用程序中的工具。
流程
在各个制作者和消费者应用的应用程序代码中执行这些步骤。使用 decorator 模式或拦截器(拦截器)检测您的客户端应用程序代码。
要使用 decorator 模式,请创建一个修改后的制作者或消费者实例来发送或接收消息。
您传递了原始
KafkaProducer或KafkaConsumer类。OpenTelemetry 的 decorator 检测示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenTracing 的 decorator 检测示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用拦截器,请在 producer 或 consumer 配置中设置拦截器类。
您以通常的方式使用
KafkaProducer和KafkaConsumer类。TracingProducerInterceptor和TracingConsumerInterceptorinterceptor 类负责追踪功能。使用拦截器的制作者配置示例
senderProps.put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, TracingProducerInterceptor.class.getName()); KafkaProducer<Integer, String> producer = new KafkaProducer<>(senderProps); producer.send(...);senderProps.put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, TracingProducerInterceptor.class.getName()); KafkaProducer<Integer, String> producer = new KafkaProducer<>(senderProps); producer.send(...);Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用拦截器的消费者配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow