Docker化SCDF的流应用程序

时间:2017-08-10 20:30:43

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

我已经能够在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,但似乎没有什么区别。

2 个答案:

答案 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)

您是否使用开箱即用的httplog应用来运行http | log流程?我假设您使用指定here的bit.ly链接导入了应用程序(您也可以单独注册应用程序)。你是如何停靠并将图像提供给SCDF服务器的?图像需要作为Docker资源提供,然后注册它。