2015-03-11 32 views
5

Jestem nowy w burzy i próbuję zrozumieć przepływ wykonywania różnych metod od spout do bolt. jak dziobek ma inne metody, takie jakPrzepływ realizacji programu burzy

nextTuple()

otwarte()

declareOutputFields()

aktywacji()

Wyłączone()

i śruba się spotkała hods jak

przygotować()

execute()

porządki()

declareOutputFields()

więc może ktoś mi powiedzieć kolejność wykonywania tych metod ?

Odpowiedz

10

Po pierwsze, gdy topologiasię zaczęło ...

  1. Załóż Wylewki i śruby
  2. declareOutputFields
  3. Wylewki/Śruby odcinkach i przypisany do pracowników

drugie, każdy pracownik gdzieś w klastrze ...

  1. Wylewki open i Śruby prepare (zdarza się raz)
  2. w pętli ...
    • Wylewki zadzwonić ack, fail i nextTuple
    • Śruby zadzwonić execute

Jeśli topologia jest wyłączona ...

  • Twoje spapy deactivate zostanie wywołana metoda. Po ponownym aktywowaniu topologii zostanie wywołane activate.

Jeśli Twoja topologia zostanie zabita ...

  • Wylewki może mieć close zwane
  • Śruby może mają cleanup nazywa

Uwaga:

Nie ma Gwarantujemy, że zamknięcie będzie nazwany, ponieważ supervisor kill procesów roboczych-9 na grupa. source

+0

Dzięki odpowiedzi. Mam jeszcze jedno pytanie, jeśli możesz pomóc - gdy zabiję topologię, metoda czyszczenia nie zostanie wywołana, ponieważ jestem uruchomiony w trybie klastra, więc jeśli chcę wykonać kod po zabiciu topologii, gdzie mogę napisać ten kod? – u12345

+0

Do tej pory nie znalazłem dobry sposób na wykonanie kodu, gdy topologia jest zabijana. Zastanawiałem się nad próbą dodania mechanizmu "pełnego wdzięku" za pomocą zookeepera, ale jak dotąd nie miałem czasu pracować nad nim. Jeśli coś ci się uda, byłbym zainteresowany! –