我已经能够在Kubernetes集群中设置spring cloud dataflow 1.2.0.RELEASE,导入入门应用程序,并运行简单的流程,例如“http | log
”。
但是当我尝试在像“http | myApp | log
”这样的流中运行我自己的Dockerized流应用程序时,我似乎无法让它工作......部署很好,流的Kafka主题按预期创建,没有来自任何pod的错误消息,但myApp处理器似乎不知道Kafka主题,因此永远不会从http源接收数据。
我的问题是:对于SCDF的流媒体应用程序是否有任何特殊之处?数据流服务器如何配置K8s pod以将其指向正确的Kafka主题?我去了https://github.com/spring-cloud-stream-app-starters并且似乎找不到任何Dockerfile示例,因此我不知道它是如何为入门应用程序完成的。
我的流应用程序非常简单;代码是这样的:
@SpringBootApplication
@EnableBinding(Processor.class)
public class MyAppProcessor
{
...
@StreamListener(Processor.INPUT)
@SendTo(Processor.OUTPUT)
List<MyPOJO> doProcessing(List<Double> doubles) {
....
}
}
我也使用@ServiceActivator
,但似乎没有什么区别。
答案 0 :(得分:2)
我不确定您为处理器使用的依赖项。
我只是created a simple transformer processor and wrote up some notes on what I did。
看看这是否有助于让你的榜样继续下去。
数据流服务器应设置流应用在部署时连接到Kafka所需的属性。
我们真的应该创建更多示例并记录如何进行Docker构建。我们在生成开箱即用的应用时会使用io.fabric8:docker-maven-plugin
,但我在我的示例中只使用了一个简单的Dockerfile
。
答案 1 :(得分:0)
您是否使用开箱即用的http
和log
应用来运行http | log
流程?我假设您使用指定here的bit.ly链接导入了应用程序(您也可以单独注册应用程序)。你是如何停靠并将图像提供给SCDF服务器的?图像需要作为Docker资源提供,然后注册它。