我正在使用代码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并获得相同的结果。
答案 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默认设置为output
,input
默认设置为SCDF。