Apache Kafka je distribuovaný streamovací platforma, která umožňuje publikování, ukládání, zpracování a předávání proudů dat v reálném čase. Pro podniky, které provozují více Kafka clusterů ve více datových centrech nebo cloudových prostředích, je důležité zajistit, aby data byla dostupná napříč všemi clustery pro zajištění vysoké dostupnosti a odolnosti proti selhání. Zde vstupuje do hry MirrorMaker, nástroj zahrnutý v Apache Kafka, určený pro replikaci dat mezi Kafka clustery.
Konfigurace MirrorMaker
1. Konfigurace zdrojového clusteru (Source Cluster) Prvním krokem je konfigurace zdrojového clusteru. Toto zahrnuje nastavení producer a consumer propojení k zdrojovému clusteru. Konfigurace consumerů je klíčová pro čtení dat ze zdrojového clusteru, zatímco konfigurace producerů řídí, jak budou data zapisována do cílového clusteru.
-
Consumer konfigurace:
bootstrap.servers
: Seznam brokerů ve zdrojovém clusteru.
group.id
: Identifikátor skupiny consumerů, která bude číst data.
client.id
: Volitelný identifikátor pro tracking v logu.
auto.offset.reset
: Určuje, jaký offset použít, pokud žádný není nalezen (nejčastěji earliest
nebo latest
).
-
Producer konfigurace:
bootstrap.servers
: Seznam brokerů v cílovém clusteru.
acks
: Určuje, kolik potvrzení je potřeba od brokerů před úspěšným zápisem (např. all
pro nejvyšší spolehlivost).
batch.size
: Velikost dávky pro zápis, optimalizuje latenci a propustnost.
2. Spuštění MirrorMaker MirrorMaker se spouští jako samostatný proces. Pro spuštění MirrorMaker použijte následující příkaz, kde consumer.config
a producer.config
jsou soubory obsahující výše uvedené konfigurace:
bin/kafka-mirror-maker.sh --consumer.config consumer.properties --producer.config producer.properties --whitelist=".*"
--whitelist
: Regex filtr pro specifikaci topiců, které mají být replikovány. ".*"
znamená replikaci všech topiců.
Pokročilé nastavení
3. Filtrace a transformace MirrorMaker umožňuje filtrace a transformace zpráv před jejich replikací. To je užitečné pro odstranění citlivých dat nebo pro aplikaci specifických transformací na zprávy.
4. Replikace cross-cluster Pro efektivní cross-cluster replikaci je doporučeno používat MirrorMaker 2 (MM2), který přináší vylepšení v oblasti automatizace, snadnější konfigurace a lepší integrace s Kafka ekosystémem.
5. Zabezpečení Zabezpečení komunikace mezi clustery je nezbytné. Konfigurujte TLS/SSL pro šifrování přenosu a SASL pro autentizaci, aby byla data chráněna během přenosu.
Replikace dat mezi Kafka clustery pomocí MirrorMaker je zásadní pro zajištění vysoké dostupnosti a odolnosti proti selhání. Správná konfigurace a používání MirrorMaker může výrazně zlepšit spolehlivost a efektivitu streamování dat ve vaší organizaci. Pamatujte, že pro složitější replikační scénáře a vyšší úroveň automatizace je doporučené používat MirrorMaker 2.