自定义SCDF入门应用程序写入"输出"主题

时间:2017-05-25 12:01:18

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

我正在使用代码here开发自定义初学者应用,因为我想向其添加TcpSSLContextSupport。我设法做到了,它在我的本地SCDF服务器上运行良好,但现在我想通过Google Cloud在SCDF上部署Kubernetes。我为它创建了一个image,它确实有效,但行为有点出乎意料。

我创建了一个类似:stream create stream-name --definition "app-name | log"的流。

首先,它根据约定stream-name.app-name创建了一个主题,我希望它能向我展示那里的消息,但它实际上写入了"输出"话题,这很奇怪。我还没有提供任何其他配置。我尝试使用SCDF最新版本以及1.2.0.RELEASE并获得相同的结果。

1 个答案:

答案 0 :(得分:0)

由于创建了主题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默认设置为outputinput默认设置为SCDF。