通过JSON标头进行Spring Cloud Dataflow路由

时间:2016-09-01 19:12:10

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

我一直在尝试使用Spring Cloud Dataflow创建一个流但没有太多运气(主要是由于缺少文档)。

问题1:访问dockerized Spring Cloud Dataflow的Web GUI 我在一个基本的Ubuntu容器上有一个与Kafka一起运行的dockerized Spring Cloud服务器。出于某种原因,我无法访问Windows中的Web GUI(在< docker-machine ip>:9393 / dashboard)。但是,我有一个运行Nginx反向代理的独立Docker Ubuntu容器,当我转到< docker-machine ip> /index.html等。我不认为这是端口问题,我使用-p 9393:9393设置Spring Cloud容器,否则端口未使用。

问题2:按JSON标头路由 我的最终目标是从Nginx加载文件,并根据其JSON标头 路由(有两个不同的JSON标头),然后向Cassandra提取查询。 我可以做所有这些,除了按JSON头排序。你会推荐我使用哪个应用程序?

1 个答案:

答案 0 :(得分:2)

  

问题1:访问dockerized Spring Cloud Dataflow的Web GUI

我们可能需要更多细节。假设这是本地服务器,也许你可以共享docker脚本/图像,所以我们可以尝试一下。

  

问题2:按JSON标头路由

router-sink应用程序对于此类用例会很方便。此应用程序根据特定条件将有效负载路由到命名目标,因此您有机会将有效负载与相应的ingest-query路由到Cassandra。

流1:

stream create test --definition "file | router --expression=header.contains('a')?':foo':':bar’"

流2:

stream create baz --definition ":foo > cassandra --ingest-query=\"query1\""

流3:

stream create wiz --definition ":bar > cassandra --ingest-query=\"query2\""

其中:foobar被命名为目的地