spring-xd - spring xd 中流中的全局变量有什么概念吗?

标签 spring-xd

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

jms |过滤器|变换| HDFS

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

当条件满足时,消息传递到转换模块。

在转换模块中,我想访问过滤模块的查询结果。

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

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

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

最佳答案

您通常会使用转换器或 header 丰富器来设置带有查询结果的消息 header ;在过滤器中使用该 header ,该 header 将可用于下游模块,包括您的变压器。

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

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

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

关于spring-xd - spring xd 中流中的全局变量有什么概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948347/

相关文章:

http - Spring XD - 找不到名称为 'ftphdfs' 且类型为 'source' 的模块

hadoop - spring xd 必需的模块工件丢失或无效

spring - 在 Ambari 上安装 Spring XD

java - Spring XD - 模块 "source:trigger"无法按预期工作

redis - 如何在运行时在springxd中获取 channel 名称

spring-data - 在 Spring 中使用 Greenplum

java - 如何使用 ModuleConfiguration.java 配置 Spring XD 模块?

java - Spring XD 流中的异常处理

spring - 使用Spring jar-tasklet时设置HADOOP_CLASSPATH

hadoop - SPRING XD-HDFS SINK中的重复条目