用于通用消息通道源的Spring Cloud Stream Starter应用程序

时间:2019-04-19 16:33:53

标签: spring-cloud-stream spring-cloud-dataflow

有一个“兔子”源应用程序,它侦听指定的兔子队列并生成消息,但是我找不到“消息通道”源,该源可以绑定任何提供绑定程序的消息代理(兔子,Kafka等) 。这样的源可以将“通道名称”和“消费者组名称”作为参数,它们将动态绑定到指定的通道,并将接收到的消息发送到绑定的输出通道。

我可以创建这样的自定义源应用程序,但是由于这对我来说是一种普遍需求,所以我想知道为什么现在还没有这样的应用程序,是否对“源”有一些基本的误解?

编辑: 我在考虑一个Source,它将侦听名称指定为属性的消息通道,然后将接收到的消息发送到绑定的输出通道。类似于“路由器”接收器所做的事情,在该情况下可以动态指定输出通道,这里我想动态指定输入通道。

当我的一个处理器应用程序正在向多个输出通道生成消息时(类似于“路由器”接收器),就出现了对此的需求。我需要其他流来处理这些频道中的消息。

说处理器1将消息发送到除主输出通道之外的辅助通道。我正在考虑创建如下流:

source | processor1 --auxChannel=auxiliary-channel | normal-output-processor | normal-output-sink

channel --channelName auxiliary-channel --groupName mygroup | auxiliary-output-processor | auxiliary-output-sink

(“ channel”是建议的Channel来源)

这有意义吗,或者还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

多亏了Artem的评论,我才知道该怎么做。不需要源应用程序。我们只需要使用一个命名通道,例如:

source | processor1 --auxChannel=auxiliary-channel | normal-output-processor | normal-output-sink
:auxiliary-channel > auxiliary-output-processor | auxiliary-output-sink