我如何使用apache风暴和yaml中的通量来监听螺栓中的特定流

时间:2016-12-20 11:02:56

标签: apache stream apache-storm flux

我有一个“XBOLT”螺栓。这将基于几个条件发出两个流(INTRESTED& ARCHIVED)。

然后我有两个螺栓“YBOLT”和“ZBOLT”。他们俩都在听XBOLT但是在不同的流上。例如,YBOLT将侦听ARCHIVED XBOLT流,ZBOLT将侦听INRESTED XBOLT流。

我最近开始在风暴中使用Flux并试图实现上述目标。

流:

  • 名称:“XBOLT - > YBOLT” 来自:“XBOLT” 致:“YBOLT” 分组:   类型:SHUFFLE

  • 名称:“XBOLT - > ZBOLT” 来自:“XBOLT” 致:“ZBOLT” 分组:   类型:SHUFFLE

现在,在分组部分我是否还需要一个像“stream”这样的字段?,否则如何监听XBOLT的特定流?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用其他字段指定流的名称。 您可以使用' streamId'流定义的分组部分内的属性。

例如,在您的情况下,您可以像这样定义流:



streams:
   - id: "XBOLT --> YBOLT"
     from: "XBOLT"
     to: "YBOLT"
     grouping:
       type: SHUFFLE
       streamId: "ARCHIVED"

   - id: "XBOLT --> ZBOLT"
     from: "XBOLT"
     to: "ZBOLT"
     grouping:
       type: SHUFFLE
       streamId: "INTRESTED"




作为参考,您可以查看本文档的Stream和Stream Grouping部分。该文档适用于版本2快照,但它可以正常使用我的风暴和磁通版本 0.10.0

http://storm.apache.org/releases/2.0.0-SNAPSHOT/flux.html

答案 1 :(得分:0)

以上答案很接近,但实际上应该是:

streams: - name: "XBOLT --> YBOLT" from: "XBOLT" to: "YBOLT" grouping: type: SHUFFLE streamId: "ARCHIVED" - name: "XBOLT --> ZBOLT" from: "XBOLT" to: "ZBOLT" grouping: type: SHUFFLE streamId: "INTRESTED"