Po pakiecie producenta wydanie v1.2 Symulatora Kafki przechodzi na stronę odczytu i jej najczęściej źle rozumiane zdarzenie: rebalans. Ten pakiet dodaje 10 nowych scenariuszy, powiększając program do 33 ze 125.

Co znajdziesz w v1.2

Grupa konsumentów to problem koordynacji ubrany w proste API. v1.2 czyni tę koordynację widoczną:

  • Strategie przydziałurange, roundrobin, sticky i cooperative-sticky obok siebie, żeby zobaczyć, które zatrzymują cały świat, a które przenoszą tylko te partycje, które muszą.
  • Statyczne członkostwo (KIP-345) — dlaczego członek, który restartuje się w granicach session.timeout.ms, zachowuje swój przydział i nie wywołuje rebalansu, oraz co się dzieje, gdy pozostaje wyłączony zbyt długo.
  • Dwa timeoutysession.timeout.ms kontra max.poll.interval.ms: jeden dotyczy heartbeatów, drugi konsumenta, który żyje, ale utknął na przetwarzaniu. Zawodzą inaczej, a symulator pokazuje oba.
  • Zatrzymanie i wznowienie — konsument, który przestaje pollować, zostaje usunięty i dołącza ponownie — i dokładnie to, które partycje się przenoszą, gdy to robi.

Rebalans trudno wytłumaczyć, bo ma sens tylko jako sekwencja: odebranie, przydzielenie, wznowienie. Statyczne diagramy sprowadzają tę sekwencję do jednej strzałki. Tutaj możesz ją przewinąć i zobaczyć, jak własność zmienia ręce jedna partycja po drugiej.

Dlaczego to ważne

Większość produkcyjnych incydentów z konsumentami to tak naprawdę incydenty rebalansu — wdrożenie, które wygląda jak awaria, max.poll.interval.ms zbyt krótki dla wolnego batcha, assignor sticky, który po cichu przenosi więcej, niż się spodziewano. Zobaczenie rebalansu w ruchu, z wybraną przez siebie prędkością, to najszybszy sposób na zbudowanie intuicji, dzięki której takie incydenty stają się oczywiste z perspektywy czasu.

Otwórz symulator, dodawaj i zabijaj konsumentów i patrz, jak grupa formuje się na nowo.