Spring Cloud Stream AggregateApplication与本地数据流服务器

时间:2017-06-21 21:44:02

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

我正在尝试创建与数据流Web服务器一起运行的Spring Cloud Stream Aggregate Application,以便能够通过Web UI管理应用程序。

应用程序运行者类:

var tableOffset = $("#table-1").offset().top;
var $header = $("#table-1 > thead");
var $fixedHeader = $("#header-fixed").append($header.clone());

$(window).bind("scroll", function() {
    var offset = $(this).scrollTop();

    if (offset >= tableOffset && $fixedHeader.is(":hidden")) {
        $fixedHeader.show();

        $.each($header.find('tr > th'), function(ind,val){
          var original_width = $(val).width(); // get width value from each
          var original_padding = $(val).css("padding"); // get padding from each
          $($fixedHeader.find('tr > th')[ind])
          .width(original_width)
          .css("padding",original_padding);
        });
    }
    else if (offset < tableOffset) {
        $fixedHeader.hide();
    }
});

这很好用。现在尝试添加Dataflow Server。创建一个类:

@SpringBootApplication
public class Runner {

public static void main(String[] args) {
    new AggregateApplicationBuilder(args).web(true)
            .from(JSONFileSourceApplication.class).args("--fixedDelay=5000")
            .via(ProcessorOne.class)
            .to(LoggingSinkApplication.class).run(args);
}

并将其设置为AggregateApplicationBuilder的父配置:

@SpringBootApplication
@EnableDataFlowServer
public class WebServer {}

如果我运行它,会发生以下异常:

...
    new AggregateApplicationBuilder(WebServer.class, args).web(true)
...

看起来AggregateApplicationBuilder进程尝试创建另一个H2服务器,而不是使用父配置中的一个。

如果我在我的JSONFileSourceApplication,ProcessorOne和LoggingSinkApplication类中使用@Configuration替换@SpringBootApplication注释 - 流应用程序启动,Web服务器启动(http://localhost:9393/dashboard),但我没有看到我的流组件,web中的所有选项卡用户界面是空的。

如何在启用Web UI的情况下运行Spring Cloud Stream AggregateApplication?

1 个答案:

答案 0 :(得分:0)

目前的SCDF,它不支持聚合应用程序的概念。

这样做的主要原因是SCDF假设应用程序具有已知的通道类型;它是输入/输出或两者(对于处理器)。但是,使用AggregateApplicationBuilder时,可以通过多种方式组合频道,并且在DSL / UI中变得模糊,以便能够以自动方式发现和绑定频道。

那就是说,在即将发布的版本中,

1)我们计划引入&#34;功能链&#34;的概念。这允许组合多个&#34;小函数(例如,filterNulls,transformToUppercase,splitByHypen,..)在运行时转换为单个流应用程序。作为开发人员,您将专注于独立开发/测试功能并使用SCDF进行注册。一旦在注册表中可用,您将拥有新的DSL原语,将它们组合成一个单元,在内部由SCDF链接(在运行时)。

2)我们计划提升队列/主题的可见性。将有DSL原语进行交互并直接与它们一起创建数据管道。鉴于这种灵活性,用例组合将更容易。