自定义 SCDF Starter App 写入 "output" 个主题

Custom SCDF Starter App writes to "output" topic

我正在使用代码 here, because I wanted to add TcpSSLContextSupport to it. I've managed to do that, and it worked fine on my local SCDF server, but now I want to deploy it on SCDF for Kubernetes over Google Cloud. I've created an image 开发自定义入门应用,它确实有效,但行为有点出乎意料。

我创建了一个像这样的流:stream create stream-name --definition "app-name | log"

首先,它按照惯例 stream-name.app-name 创建了一个主题,我期待它向我显示那里的消息,但它实际上写入了 "output" 主题,这很奇怪。我没有提供任何额外的配置。我用 SCDF 最新版本以及 1.2.0.RELEASE 尝试过,结果相同。

自创建主题 stream-name.app-name 以来,SCDF 正确地为您的源应用设置了出站目的地名称。请注意,SCDF 仅为应用程序设置 属性 spring.cloud.stream.bindings.output.destination。这里假设出站通道为output

我猜您的自定义应用程序中 outbound 消息通道的绑定目标名称不同。由于 SCDF 没有为此应用设置目的地,因此该应用默认将 output 作为目的地。

在您的自定义应用程序中检查您的 outbound 目标名称。您需要将 属性 spring.cloud.stream.bindings.<customOutboundTargetName>.destination 设置为应用程序的部署 属性。

例如,

dataflow:>stream deploy stream-name --properties "app.source-app-name.spring.cloud.stream.bindings.customOutboundTargetName.destination=yourTopic,app.sink-app-name.spring.cloud.stream.bindings.customInboudTargetName.destination=yourTopic"

注意:customOutboundTargetName 和 customInboundTargetName 通过 SCDF 默认设置为 outputinput