A v1.3 abre o módulo de replicação no Kafka Simulator — a maquinaria por trás de cada garantia de durabilidade que o Kafka oferece. É o maior pacote até agora, com 12 novos cenários, levando o programa a 45 de 125.
O que há na v1.3
A replicação é onde as garantias do Kafka se tornam concretas — e onde podem ser perdidas:
- Mecânica do ISR — como o conjunto de réplicas em sincronia encolhe quando um follower fica para trás e se expande quando ele alcança, e por que pertencer a esse conjunto é o que realmente importa.
- A high watermark — por que um consumidor só pode ler até a HW, e por que a HW às vezes para de avançar mesmo com o líder continuando a aceitar escritas.
acks=allemin.insync.replicas— a relação exata entre os dois: por que um produtor ainda escreve depois de um broker cair, mas começa a receberNotEnoughReplicasdepois do segundo.- Eleição de líder — qual réplica assume após uma falha, e por que ela precisa vir do ISR.
- Eleição unclean — o que de fato se perde ao permitir que uma réplica fora de sincronia se torne líder, observado offset a offset.
Este é o módulo para tornar visível o qual todo o simulador foi construído. O comportamento interessante vive inteiramente nas transições — antes e depois de um broker morrer, antes e depois de o ISR mudar — e são exatamente essas transições que um quadro branco não consegue mostrar.
Novidade no modo livre: a topologia ativo/passivo
A v1.3 também abre a primeira forma multi-datacenter no sandbox do modo livre: ativo/passivo — duas regiões, um mirror unidirecional e um failover que você dispara sob demanda. É a maneira mais simples de ver a replicação deixar de ser um assunto interno a um cluster.
O programa de DR — MirrorMaker 2, tradução de offsets, failback — vem depois, na v1.8. Isto é o sandbox, liberado cedo de propósito: vale a pena brincar com a forma muito antes de chegarem os cenários que a explicam. Cada um dos três pacotes seguintes acrescenta mais uma topologia.
Por que a replicação é a âncora
Produtores e consumidores se apoiam nessas garantias; armazenamento, transações e multi-DC as estendem. Depois que você vê o ISR se mover e a high watermark se manter, o resto do programa vira uma série de variações sobre um sistema que você já entende.
Abra o simulador, configure RF=3 e min.insync.replicas=2 e comece a matar brokers.