Wprowadzenie do Kafka Consumer Group
Grupa konsumentów Kafka to w zasadzie pewna liczba konsumentów Kafka, którzy mogą czytać dane równolegle z tematu Kafka. Grupa konsumencka Kafka ma następujące właściwości:
- Wszyscy konsumenci w grupie mają tę samą grupę. Id.
- Każda partycja w temacie jest odczytywana tylko przez jednego konsumenta.
- Maksymalna liczba konsumentów jest równa liczbie partycji w temacie. Jeśli będzie więcej klientów niż partycji, niektórzy z nich pozostaną bezczynni.
- Konsument może czytać z więcej niż jednej partycji.
Znaczenie Kafka Consumer Group
W przypadku organizacji detalicznej duża liczba producentów będzie generować dane w ogromnym tempie. Teraz, aby odczytać duży wolumen danych, potrzebujemy wielu Konsumentów działających równolegle. Jest to stosunkowo łatwiejsze po stronie producenta, gdzie każdy producent generuje dane niezależnie od innych. Ale po stronie konsumenta, jeśli mamy więcej niż jednego konsumenta czytającego ten sam temat, istnieje duże prawdopodobieństwo, że każda wiadomość zostanie przeczytana więcej niż raz. Kafka rozwiązuje ten problem za pomocą Consumer Group. W każdym przypadku tylko jeden konsument może odczytać dane z partycji.
Podziały grupy konsumenckiej Kafka
Załóżmy, że mamy temat Kafki i są w nim 4 partycje. Następnie możemy mieć następujące scenariusze:
1. Liczba konsumentów = liczba partycji
W takim przypadku każdy konsument odczyta dane z każdej partycji i jest to idealny przypadek.
2. Liczba konsumentów> Liczba partycji
W takim przypadku jeden konsument pozostanie bezczynny i doprowadzi do złego wykorzystania zasobów.
3. Liczba konsumentów <Liczba partycji
W takim przypadku jeden z konsumentów odczyta dane z więcej niż jednej partycji.
4. Liczba grup konsumentów> 1
W tym przypadku temat jest subskrybowany przez więcej niż jedną grupę konsumentów, która obsługuje dwie różne aplikacje. Obie aplikacje mogą działać niezależnie od siebie.
Zalety Kafka Consumer Group
Grupa konsumencka dodaje następujące korzyści:
- Skalowalność: pewna liczba konsumentów odczytujących dane równolegle zdecydowanie zwiększa tempo ich zużycia i sprawia, że system jest w stanie odczytać dużą ilość danych.
- Odporność na awarie: Załóżmy, że mieliśmy tylko jednego konsumenta (do odczytu niezbyt dużej ilości danych), co by się stało, gdyby konsument z jakiegoś powodu poniósł porażkę? Cały rurociąg się zepsuje.
- Równoważenie obciążenia: Kafka dzieli partycje sprawiedliwie dla każdego konsumenta, dzięki czemu proces konsumpcji danych jest płynny i wydajny.
- Ponowne równoważenie : Jeśli nowy Konsument zostanie dodany lub istniejący przestanie istnieć, Kafka ponownie zrównoważy obciążenie dostępnych Konsumentów.
Jak Kafka łączy dwa modele?
Najpierw omówmy dwa modele przesyłania wiadomości.
1. Kolejki wiadomości
W tym modelu strumień wiadomości jest wysyłany od jednego producenta do tylko jednego konsumenta. Dlatego każdy komunikat jest tylko do odczytu raz, a gdy konsument wyciągnie komunikat, komunikat jest usuwany z kolejki. Typowym przykładem może być wystawienie wypłaty, przy czym każda wypłata musi być wystawiona tylko raz. Ponadto ten model nie gwarantuje, że wiadomości będą dostarczane w kolejności. Skalowalność przetwarzania wiadomości jest ograniczona do jednej domeny.
2. Publikuj-Subskrybuj Wiadomości
W tym modelu komunikaty publikowane przez producenta mogą subskrybować więcej niż jeden konsument. Producent i konsument są w dużym stopniu oddzieleni od siebie. Ten model zapewnia, że każdy konsument będzie otrzymywać wiadomości w temacie w dokładnie określonej kolejności wygenerowanej przez producenta. Typowym przykładem może być antena telewizyjna, która publikuje różne kanały, takie jak muzyka, film, sport itp., A konsumenci mogą subskrybować więcej niż jeden kanał. Ponieważ jest wielu subskrybentów tematu, skalowanie przetwarzania strumieni stanowi wyzwanie.
Kafka jest tak popularna, ponieważ choć opiera się na modelu publikowania i subskrybowania, ma zalety systemu kolejek wiadomości. Jak wspomniano wcześniej, jeśli mamy grupę konsumentów, Kafka zapewnia, że każda wiadomość w temacie jest tylko do odczytu przez konsumenta (co jest podobne do systemu kolejki wiadomości). Dodatkową zaletą jest to, że wiadomości są zatrzymywane przez brokerów (przez pewien czas czyniąc je odpornymi na awarie) i jeśli mamy więcej niż jedną grupę konsumentów, mogą czytać wiadomości z tego samego tematu, ale przetwarzać je inaczej.
Użyj implikacji przypadku
Załóżmy, że mamy prostą platformę chmurową, w której zezwalamy użytkownikom na następujące operacje:
- Przechowuj pliki w chmurze.
- Przeglądaj swoje pliki w chmurze.
- Pobierz ich pliki z chmury.
Na początku mieliśmy bardzo małą bazę użytkowników. Chcieliśmy uzyskać różne statystyki (co godzinę), takie jak aktywni użytkownicy, liczba żądań przesłania, liczba żądań pobrania itd. Aby spełnić wymagania, utworzyliśmy klaster Kafka, który produkuje logi (generowane przez naszą aplikację) do tematu i istnieje aplikacja, która wykorzystuje ten temat (za pomocą konsumenta), a następnie przetwarza go w celu wygenerowania wymaganych statystyk i wyświetlenia te na stronie internetowej.
Gdy ludzie zaczęli lubić nasze usługi, coraz więcej osób zaczęło z nich korzystać, generując w ten sposób wiele dzienników na godzinę. Odkryliśmy, że aplikacja, która korzysta z tego tematu, stała się bardzo wolna, ponieważ korzystaliśmy tylko z jednego konsumenta. Aby rozwiązać problem, dodaliśmy do grupy kilku Konsumentów i stwierdziliśmy znaczną poprawę wydajności.
Napotkaliśmy kolejny wymóg, w którym musieliśmy zapisywać dzienniki w klastrze HDFS i proces ten powinien działać niezależnie od poprzedniej aplikacji (Jest tak, ponieważ przy dalszym wzroście danych planowaliśmy wycofać pierwszą aplikację i wyprowadzić wszystkie statystyki w środowisku HDFS). Aby spełnić ten wymóg, opracowaliśmy inną aplikację, która zasubskrybowała ten temat przy użyciu innej grupy konsumentów i zapisała dane w klastrze HDFS.
Polecane artykuły
To jest przewodnik po Kafka Consumer Group. Tutaj omawiamy znaczenie grupy konsumenckiej Kafka oraz sposób, w jaki Kafka łączy dwa modele wraz z implikacją przypadku użycia. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-
- Aplikacje Kafka
- Jak zainstalować Kafka?
- Pytania do wywiadu Kafki
- Architektura HDFS
- Różne rodzaje narzędzi Kafka