Java Code -> Apache Kafka -> Apache Storm – Event pipeline [DSP2017]

W ostatnim poście poruszyłem co to jest Kafka, jak działa oraz jak zacząć jej używać. Dziś zmierzymy się z wysyłaniem komunikatów w Javie do wybranego topic’a. W projekcie jest to moduł odpowiedzialny za odczyt stanów urządzeń podłączonych do RPi i wysyłania komunikatu o zmianie.  Następnie zobaczymy małą burzę, póki co z jednym piorunem, ale hałas robi i tak dobry 😉 Jeśli nie pamiętasz albo nie czytałeś poprzednich postów to odsyłam >tutaj< w celu zapoznania się z całością.

Aby wysłać event musimy skonfigurować i utworzyć instancję producenta:

Teraz możemy przystapić do wysyłania pierwszych wiadomości do topica:

Wątek odpowiedzialny za obsługę sprzętu umieszcza eventy w kolejce. Następnie są one brane pojedynczo, serializowane do jsona i wysyłane do topic’a.

Ale w topicu nie powinny za długo czekać bo chcemy aby nasz system pracował real time. Tutaj zaczyna swoje działanie Apache Storm. Póki co topologia jest bardzo prosta: KafkaSpout czyta kolejne eventy z topica, następnie trafiają one do EventBolt’a w którym są przetwarzane. Aktualne implementacja nie porywa;) eventy idą do loggera(wielkie mi to przetwarzanie), dopóki nie powstanie moduł odpowiedzialny za obsługę wyjść cyfrowych. Docelowo bolt bazując na konfiguracji będzie wykonywał żądaną akcję oraz przesyłał event do kolejnego bolta, który będzie odpowiedzialny za zapis eventów w celu późniejszego przetwarzania, analizy zdarzeń.

A co to jest Storm, jak działa i po co mi on w projekcie już niebawem;)

Plan na nadchodzący tydzień: (właśnie się zorientowałem, że przez chorobę nie udało mi się zrealizować planu z zeszłego tygodnia, ups)

  • Przygotować obsługę sprzętu /sterowanie wyjściami cyfrowymi – jakieś lekkie RESTy
  • MongoDB – do zapisu przetworzonych eventów
  • Prototyp “panelu sterowania” do definiowania urządzeń i obsługi zdarzeń, definiowania sag
  • Refactor topologi aby obsłużyć efekty powyższych kroków
  • wdrożenie sensownego CD dla Storma i komponentów na RPi

Brzmi ambitnie, zobaczymy co się uda z tego zrobić, tym czasem życzę miłej lektury.

 

Przeczytałeś, było słabo ? Zostaw feedback 😉

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *