Wydanie v1.3 otwiera moduł replikacji w Symulatorze Kafki — maszynerię stojącą za każdą gwarancją trwałości, jaką daje Kafka. To największy jak dotąd pakiet: 12 nowych scenariuszy, które powiększają program do 45 ze 125.

Co jest w v1.3

Replikacja to miejsce, w którym gwarancje Kafki stają się konkretne — i w którym można je stracić:

  • Mechanika ISR — jak zbiór replik w synchronizacji kurczy się, gdy follower zostaje w tyle, i rozszerza, gdy nadrobi zaległości, oraz dlaczego przynależność do tego zbioru jest sednem całej gry.
  • High watermark — dlaczego konsument może czytać tylko do HW i dlaczego HW czasem przestaje się przesuwać, mimo że lider wciąż przyjmuje zapisy.
  • acks=all i min.insync.replicas — dokładna zależność między nimi: dlaczego producent nadal zapisuje po śmierci jednego brokera, ale zaczyna dostawać NotEnoughReplicas po drugim.
  • Wybór lidera — która replika przejmuje rolę po awarii i dlaczego musi pochodzić z ISR.
  • Nieczysty wybór lidera — co realnie tracimy, pozwalając replice spoza synchronizacji zostać liderem, obserwowane offset po offsecie.

To moduł, dla którego uwidocznienia zbudowano cały symulator. Interesujące zachowania żyją wyłącznie w przejściach — przed i po śmierci brokera, przed i po zmianie ISR — a właśnie tych przejść tablica pokazać nie potrafi.

Nowość w trybie swobodnym: topologia active/passive

v1.3 otwiera też pierwszy kształt wielo-datacenterowy w piaskownicy trybu swobodnego: active/passive — dwa regiony, jednokierunkowy mirror i failover, który uruchamiasz na żądanie. To najprostszy sposób, by zobaczyć, jak replikacja przestaje być sprawą wewnątrz jednego klastra.

Program nauczania DR — MirrorMaker 2, translacja offsetów, failback — przyjdzie później, w v1.8. To jest piaskownica, odblokowana wcześnie celowo: z tym kształtem warto się pobawić na długo przed scenariuszami, które go tłumaczą. Każdy z trzech kolejnych pakietów dokłada jedną topologię.

Dlaczego replikacja jest kotwicą

Producenci i konsumenci stoją na tych gwarancjach; pamięć masowa, transakcje i multi-DC je rozszerzają. Gdy raz zobaczysz, jak porusza się ISR i jak trzyma się high watermark, reszta programu okazuje się serią wariacji na temat systemu, który już rozumiesz.

Otwórz symulator, ustaw RF=3 i min.insync.replicas=2 i zacznij zabijać brokery.