Spring Boot-线程/ Feign-Client /消息传递/ Streamlistener

时间:2019-08-06 14:28:27

标签: java spring spring-cloud-stream spring-cloud-feign

我们很难找到以下情况的解决方案:

情况

  • 通过Spring Cloud Streamlistener接收消息

  • 通过Feign-Client调用REST服务

  • 我们已经配置了多个Feign-RequestInterceptor以丰富 请求标头数据。

我们希望避免在方法调用中传递每个请求标头,就像请求拦截器的集中配置方法一样。

问题:

如何从包含特定信息的消息中访问数据,这些信息需要通过Feign-RequestInterceptor添加到每个请求调用中。 我们没有来自消息的Request-Context。

我们可以确定消息使用和REST调用是在同一线程上发生的吗?如果是,我们可以使用NamedThreadLocal来存储信息。

1 个答案:

答案 0 :(得分:1)

是的,除非您切换到StreamListener中的另一个线程,否则其余调用将在同一线程上进行(假设您使用的是RestTemplate,而不是响应式Web客户端)。