Stalo się standardem, że współczesne narzędzia i biblioteki dystrybuowane są z mniej lub bardziej zaawansowanym interfejsem graficznym. RabbitMQ, będący najpopularniejszym obecnie systemem kolejkowym, wita nas po zainstalowaniu przejrzystym i funkcjonalnym panelem administracyjnym. Może więc budzić zdziwienie, że Apache Kafka nie została wyposażona w żadne GUI. Do dyspozycji dostajemy jedynie zestaw skryptów bashowych, które co prawda pozwalają wykonać wiele czynności administracyjnych, to jednak korzystanie z nich nie należy do przyjemnych. Sprawiają wrażenie pisanych przez różne zespoły developerskie, ponieważ te same parametry potrafią mieć inne nazwy. W dodatku skrypty są bezstanowe - każde wywołanie musi mieć pełen zestaw parametrów identyfikujących serwer i zasoby do których chcemy się odwołać. Naturalnym jest zatem, że do wygodnej i wydajnej pracy warto wdrożyć rozwiązanie, które pozwala w łatwy sposób podejrzeć stan serwera oraz topików na Kafce. Z kolei ze względu na prostotę testowania i diagnostyki, warto mieć możliwość dodawania nowych komunikatów.
Dlaczego piszemy własne narzędzie
Poszukując administracyjnego frontendu do naszej Kafki, zainstalowaliśmy i przetestowaliśmy szereg dostępnych w sieci darmowych aplikacji. Niestety żadna z nich nie spełniła wszystkich wyspecyfikowanych wymagań. Nie pozostało nam zatem nic innego, jak przygotować własne narzędzie. Tak oto powstał Kafka Companion. Uważni czytelnicy naszego bloga zauważą pewnie, że nie jest to pierwszy Companion, który powstał w naszej firmie. Podobne pobudki doprowadziły chociażby do implementacji SQCompaniona, o którym pisał Grzegorz Lipecki w artykule Monitorowanie zespołowych trendów jakości kodu
Podstawowe funkcjonalności
Aplikacja podzielona jest na trzy moduły dostarczające istotnych funkcjonalności podczas codziennej pracy developerskiej z Kafką.
Podgląd kondycji klastra
Ekranem, od którego należałoby rozpocząć, jest lista wszystkich węzłów w klastrze. Znając topologię możemy upewnić się, czy węzły klastra są żywe oraz jakie mają identyfikatory.
Podgląd i dodawanie wiadomości do topiku
Możliwość podglądania stanu kolejek oraz dodawania nowych wiadomości jest niezwykle istotna podczas rozwijania oraz testowania systemu. W naszym rozwiązaniu wszystkie wiadomości są JSONami, więc dodatkowo widok wiadomości próbuje rozłożyć je do postaci tabeli tak, aby można było przejrzyście zaprezentować stan topiku. Prezentowane są także metadane związane z numerem partycji oraz offsetem wiadomości.
W każdej chwili możemy zarzucić topik dowolną liczbą wiadomości. Wprowadziliśmy także placeholdery pozwalające na różnicowanie wiadomości dodawanych w jednej serii.
Podgląd stanu grup konsumentów
Ostatnim ekranem jest podgląd grup konsumentów.
Dowiadujemy się z niego kto konsumuje wiadomości z topików oraz, co bardzo ważne, czy wiadomości są konsumowane na bieżąco.
Podsumowanie
Kafka Companion jest darmowy i dostępny na naszym Githubie. Zachęcam do pobrania, testowania i zgłaszania uwag.
Zaproszenie na 4developers
Jeżeli zainteresowała was tematyka poruszana w tym artykule to serdecznie zapraszam na moje wystąpienie na 4Developers, gdzie wykorzystam Kafka Companiona podczas mojej prezentacji. Wielkopolska edycja 4Developers odbędzie się 18.11. Ścieżki tematyczne, jakie pojawią się w Poznaniu, to: .NET, Architektury Aplikacji, Java, JavaScript