一个请求的所有 Zuul 过滤器都在同一个线程中执行吗?
Are all Zuul filters for one request executed in same thread?
我有一个基于 netflix Zuul 的代理服务。对于来自我的自定义过滤器或 Zuul 内置过滤器的任何日志,我希望有一个名为 Flow-Id 的请求 header 作为我日志的一部分。我可以通过使用前置过滤器在 MDC 上下文中设置此 header 的值来实现。但这只有在所有过滤器都在同一个线程中执行时才有效。
一个请求的所有Zuul过滤器都是在同一个线程中执行的吗?
当这个请求仍在进行时,这个线程 运行 还会有其他事情吗?
我查看了代码,发现 Zuul 代理正在使用 servlet。 spring 云将此 servlet 包装在 ServletWrappingController 中。
所以为了回答我自己的问题,所有过滤器都在一个线程中执行。
并且为了确保尽早设置 MDC 上下文,我在 servlet 过滤器中进行了设置并添加了一个 spring bean。
我有一个基于 netflix Zuul 的代理服务。对于来自我的自定义过滤器或 Zuul 内置过滤器的任何日志,我希望有一个名为 Flow-Id 的请求 header 作为我日志的一部分。我可以通过使用前置过滤器在 MDC 上下文中设置此 header 的值来实现。但这只有在所有过滤器都在同一个线程中执行时才有效。
一个请求的所有Zuul过滤器都是在同一个线程中执行的吗? 当这个请求仍在进行时,这个线程 运行 还会有其他事情吗?
我查看了代码,发现 Zuul 代理正在使用 servlet。 spring 云将此 servlet 包装在 ServletWrappingController 中。
所以为了回答我自己的问题,所有过滤器都在一个线程中执行。
并且为了确保尽早设置 MDC 上下文,我在 servlet 过滤器中进行了设置并添加了一个 spring bean。