如何使用我自己的处理器模块在 Spring-XD 中创建分路器

How can I use my own processor module to create a tap in Spring-XD

我创建了一个名为 vfs-od-fe-hb 的流,其中源是 vfs,处理器是 odfe,接收器是 hb .我想在 fe 的位置创建一个抽头并将结果存储到 hdfs 中。

我的shell命令是:

stream create --name vfs-od-fe-hb-tap-ib-hdfs --definition "tap:stream:vfs-od-fe-hb.fe > ib > hdfs" --deploy

ib 是我的处理器,它可以成功处理来自 fe 的消息,但现在错误消息:

Command failed org.springframework.xd.rest.client.impl.SpringXDException: XD133E:(pos 34): Expected channel prefix of 'queue' or 'topic' but found 'hdfs'

如果ib是一个处理器,语法应该是

tap:stream:vfs-od-fe-hb.fe > ib | hdfs

即水龙头(命名通道)是 ib 的输入通道,我们正常输出它的管道。

解析器正在对 > hdfs 作出反应,因为 > 只能在命名通道和处理器或接收器之间。

(或在发送到命名通道时在处理器之后 - queue:...topic:...)。