spring xd中的流中是否有全局变量的概念?

时间:2014-07-25 04:56:57

标签: spring-xd

场景:spring xd中的流定义具有以下结构:

jms |过滤器|变换| HDFS

在过滤器模块中,我向数据库发出查询以验证当前消息是否适用于进一步处理。

满足条件时,消息将传递给转换模块。

在转换模块中,我希望能够访问过滤器模块的查询结果。

目前,我最终不得不在转换中再次触发查询以访问相同的结果集。

是否有任何形式的全局变量可以在跨越不同模块从源传递到接收器的消息的生命周期中应用?这有助于减少从数据库读取的延迟。

如果这不可能,那么推荐的替代方案是什么?

1 个答案:

答案 0 :(得分:2)

您通常会使用变换器或标头扩充器来设置带有查询结果的邮件标头;在过滤器中使用该标头,标头可用于下游模块,包括变压器。

<int:chain input-channel="input" output-channel="output">
    <int:header-enricher..../>
    <int:filter ... />
</int:chain>

此(传递任意标题)目前仅适用于兔子(和本地)传输(开箱即用),或者启用了直接绑定。

使用redis传输时,您必须配置总线以将标头添加到它传递的标头。