如何解决在 kafka 侦听器中为每条消息放置跟踪 ID
如何使用 KafkaListenerAnnotationBeanPostProcessor
为到达消费者的每条消息添加跟踪 ID?
我想避免在每个侦听器中使用 ThreadContext.put()
。为此目的遵循的最佳实践是什么?在不使用 KafkaListenerAnnotationBeanPostProcessor
的情况下,是否有更好的方法。
我也不能使用 Sleuth,因为它给我的应用程序带来了一些问题。任何帮助将不胜感激。
解决方法
大多数跟踪库(包括 Spring Cloud Sleuth 反过来在内部使用 Brave 作为跟踪库)通常使用 Threadlocal 来存储跟踪。因此,如果您想要的只是一个跟踪 ID,那么使用 Threadlocal 会更简单。当然,在这种情况下,您需要自己传播跟踪 ID。您可以使用 Spring AOP 以非侵入性方式编写和应用线程本地跟踪 ID 逻辑生成/清理。另一种方法是自己集成 Brave 库,详见此处针对 Kafka 客户端的支持检测选项 here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。