2016-12-20 1 views
0

J'ai un boulon "XBOLT". Cela émettra deux flux (INTRESTED & ARCHIVED) basé sur quelques conditions.Comment écouter un flux spécifique dans un boulon en utilisant apache tempête et flux en yaml

Puis j'ai deux boulons "YBOLT" et "ZBOLT". Les deux écoutent XBOLT mais sur des streams différents. Par exemple, YBOLT écoutera le flux ARCHIVED de XBOLT et ZBOLT écoutera le flux INRESTED de XBOLT.

J'ai récemment commencé à utiliser Flux avec tempête et j'ai essayé de mettre en œuvre ce qui précède.

flux:

  • nom: "XBOLT -> YBOLT" de: "XBOLT" à: "YBOLT" groupement: Type: SHUFFLE

  • nom: « XBOLT -> ZBOLT » de: "XBOLT" à: "ZBOLT" groupement: Type : SHUFFLE

Maintenant, dans la section de regroupement devrais-je besoin d'un champ de plus comme "flux"?, Sinon comment saurait-il écouter le flux spécifique de XBOLT?

Répondre

0

Oui, vous pouvez utiliser un autre champ pour spécifier le nom du flux. Vous pouvez utiliser la propriété 'streamId' dans la section de regroupement de vos définitions de flux.

par exemple dans votre cas, vous pouvez définir des flux comme ceci:

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"

Pour référence, vous pouvez consulter la section Stream et regroupement flux de cette documentation. La documentation est pour snapshot la version 2, mais il fonctionne très bien avec ma tempête et la version flux de 0.10.0

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