17.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 要使用拦截器,请在生成者或消费者配置中设置拦截器类。
您以通常的方式使用
KafkaProducer
和KafkaConsumer
类。TracingProducerInterceptor
和TracingConsumerInterceptor
interceptor 类负责追踪功能。使用拦截器的制作者配置示例
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