Nach dem Producer-Paket wendet sich das v1.2-Release des Kafka Simulators der Leseseite zu und ihrem am häufigsten missverstandenen Ereignis: dem Rebalancing. Dieses Paket fügt 10 neue Szenarien hinzu und bringt das Curriculum auf 33 von 125.

Was steckt in v1.2

Eine Consumer-Gruppe ist ein Koordinationsproblem in einer einfachen API. v1.2 macht diese Koordination sichtbar:

  • Zuweisungsstrategienrange, roundrobin, sticky und cooperative-sticky nebeneinander, damit du siehst, welche die Welt anhalten und welche nur die Partitionen verschieben, die sie müssen.
  • Statische Mitgliedschaft (KIP-345) — warum ein Mitglied, das innerhalb von session.timeout.ms neu startet, seine Zuweisung behält und kein Rebalancing auslöst, und was passiert, wenn es zu lange ausfällt.
  • Die zwei Timeoutssession.timeout.ms versus max.poll.interval.ms: der eine betrifft Heartbeats, der andere einen Consumer, der lebt, aber in der Verarbeitung feststeckt. Sie versagen unterschiedlich, und der Simulator zeigt beide.
  • Stocken und Fortsetzen — ein Consumer, der aufhört zu pollen, ausgeschlossen wird und wieder beitritt — und genau, welche Partitionen sich dabei verschieben.

Das Rebalancing ist schwer zu vermitteln, weil es nur als Sequenz Sinn ergibt: entziehen, zuweisen, fortsetzen. Statische Diagramme pressen diese Sequenz in einen einzigen Pfeil. Hier kannst du sie durchscrubben und zusehen, wie der Besitz Partition für Partition den Besitzer wechselt.

Warum das wichtig ist

Die meisten Consumer-Vorfälle in Produktion sind eigentlich Rebalancing-Vorfälle — ein Deployment, das wie ein Ausfall aussieht, ein max.poll.interval.ms, das für einen langsamen Batch zu kurz ist, ein Sticky-Assignor, der stillschweigend mehr verschiebt als erwartet. Das Rebalancing in Bewegung zu sehen, in der Geschwindigkeit deiner Wahl, ist der schnellste Weg, die Intuition aufzubauen, die solche Vorfälle im Nachhinein offensichtlich macht.

Öffne den Simulator, füge Consumer hinzu und beende sie, und beobachte, wie sich die Gruppe neu formiert.