Spring cloud 带有本地数据流服务器的Spring云流聚合应用程序

Spring cloud 带有本地数据流服务器的Spring云流聚合应用程序,spring-cloud,spring-cloud-stream,spring-cloud-dataflow,Spring Cloud,Spring Cloud Stream,Spring Cloud Dataflow,我正在尝试创建SpringCloudStreamAggregate应用程序,它与DataFlowWeb服务器一起运行,以便能够通过WebUI管理应用程序 应用程序运行程序类: @SpringBootApplication public class Runner { public static void main(String[] args) { new AggregateApplicationBuilder(args).web(true) .from(JSONF

我正在尝试创建SpringCloudStreamAggregate应用程序,它与DataFlowWeb服务器一起运行,以便能够通过WebUI管理应用程序

应用程序运行程序类:

@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);
}
这样行。现在正在尝试添加数据流服务器。创建一个类:

@SpringBootApplication
@EnableDataFlowServer
public class WebServer {}
并将其设置为AggregateApplicationBuilder的父配置:

...
    new AggregateApplicationBuilder(WebServer.class, args).web(true)
...
如果我运行它,将发生以下异常:

BeanCreationException: Error creating bean with name 'initH2TCPServer' ... 
Factory method 'initH2TCPServer' threw exception ... Exception opening port "19092" (port may be in use)
看起来AggregateApplicationBuilder进程试图创建另一个H2服务器,而不是使用父配置中的H2服务器

如果我在我的JSONFileSourceApplication、ProcessorOne和LoggingSinkApplication类-流应用程序启动、web服务器启动()中将@SpringBootApplication注释替换为@Configuration,但我没有看到流组件,那么web UI中的所有选项卡都是空的


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

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

主要原因是SCDF假设应用程序属于已知通道类型;它可以是输入/输出,也可以同时是输入/输出(对于处理器)。但是,当使用聚合应用程序生成器时,有多种方法可以组合频道,DSL/UI中的自动发现和绑定频道变得模糊

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

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


2) 我们计划提高队列/主题的可见性。将有DSL原语与它们直接交互并创建数据管道。考虑到这种灵活性,类似组合的用例将更容易实现

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

主要原因是SCDF假设应用程序属于已知通道类型;它可以是输入/输出,也可以同时是输入/输出(对于处理器)。但是,当使用聚合应用程序生成器时,有多种方法可以组合频道,DSL/UI中的自动发现和绑定频道变得模糊

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

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


2) 我们计划提高队列/主题的可见性。将有DSL原语与它们直接交互并创建数据管道。考虑到这种灵活性,类似组合的用例将更容易实现

谢谢你的回答,萨比!我实际上是在一台机器上运行一个java应用程序。应用程序本身由表示数据处理图的多个组件组成。组件通过消息进行交互。我正试图使用SCDF实现这一目的,因为我想使用它的基础设施来组织消息传递,添加、删除和配置组件,定义组件交互图等。使用聚合应用程序避免消息序列化,因为对象非常庞大(应用程序与图像一起工作)可以引用本机对象,看起来SCDF不适合我的情况..谢谢你的回答,Sabby!我实际上是在一台机器上运行一个java应用程序。应用程序本身由表示数据处理图的多个组件组成。组件通过消息进行交互。我正试图使用SCDF实现这一目的,因为我想使用它的基础设施来组织消息传递,添加、删除和配置组件,定义组件交互图等。使用聚合应用程序避免消息序列化,因为对象非常庞大(应用程序与图像一起工作)并且可以引用本机对象,看起来SCDF不适合我的情况。。