【问题标题】:Spring Sleuth/Feign disable header propagation on specific conditionsSpring Sleuth/Feign 在特定条件下禁用标头传播
【发布时间】:2021-11-01 12:29:22
【问题描述】:

我正在开发一个应用程序,该应用程序使用 Spring Sleuth 和 Feign 在传入和传出的休息请求之间自动传播标头。我们希望限制这种一揽子行为(因为标头在所有下游调用中都被转发)并从一个调用中删除特定的标头。

我想知道 spring 是否提供了这种灵活性。我看到有一个similar question,但无法理解解决方案,并查看了 Sleuth 文档和代码,我找不到执行此操作的选项。

【问题讨论】:

    标签: spring spring-cloud-feign spring-cloud-sleuth


    【解决方案1】:

    文档中有一个名为 OpenFeign 的部分,它 告诉您如何启用/禁用 Feign 和/或自定义 Feign 组件的检测,请参阅:spring.sleuth.feign.enabledspring.sleuth.feign.processor.enabled

    据我所知,没有配置选项可以通过 URL 禁用此功能,您可以尝试两件事:

    1. 您可以向您的 http 客户端注入一个拦截器来删除标头
    2. 您可以为 Sleuth 打开一个问题,为每个 feign 客户端添加一个启用标志,以便您可以为一个客户端打开检测并为另一个客户端关闭检测

    【讨论】:

    • 感谢乔纳坦!我之前查看了文档,也找不到解决方案。我正在考虑永远放弃 Spring,因为它会带来更多的麻烦(和意想不到的行为),而转向更简单的东西。 (编辑:无意冒犯,我刚刚看到你为 Spring 工作)
    • 是的,我在 Spring Cloud Sleuth 工作,所以我可能会有偏见,并且肯定会从不同的角度看待这一点,但 Spring 的目标之一是让用户的事情变得更简单。如果您可以分享一些关于为什么这对您意味着更多麻烦(和意外行为)的反馈,请在问题中这样做,我们一直在寻找用户的反馈。关于您在这里的原始问题,我上面的任何建议对您有用吗?
    • 感谢@Jonatan Ivanov 的建议。我认为问题在于我们正在使用 Sleuth 转发跟踪标头和其他不相关的标头......但是这些其他标头应该手动或以不同的方式处理,而不是使用 Sleuth,因为它恰好具有转发标头的功能。第二个选项可能是一个解决方案......第一个选项有可能使应用程序的预期行为更加模糊,因为在某些情况下为什么转发某些标题而其他标题并不明显。再次感谢!
    猜你喜欢
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 2020-05-28
    • 1970-01-01
    • 2021-09-26
    • 2023-02-20
    • 1970-01-01
    相关资源
    最近更新 更多