Kafka Architecture: Log Compaction

tento příspěvek opravdu vybírá z naší série o kafka architecture, která zahrnuje témata kafka architecture, kafka producer architecture, kafka consumer architecture a kafka ecosystem architecture .

tento článek je silně inspirován sekcí kafka o designu kolem zhutnění kulatiny . můžete si to představit jako útesové poznámky o Kafkově designu kolem zhutnění kulatiny .

kafka může odstranit starší záznamy na základě času nebo velikosti protokolu. kafka také podporuje zhutnění protokolu pro zhutnění klíče záznamu. zhutnění protokolu znamená, že kafka uchová nejnovější verzi záznamu a odstraní starší verze během zhutnění protokolu.

jean-paul azar pracuje ve společnosti Cloud . cloudurable poskytuje školení kafka, kafka consulting, podporu kafka a pomáhá při vytváření klastrů kafka v aws .

kafka log compaction

log compaction zachovává alespoň poslední známou hodnotu pro každý záznamový klíč pro jeden tematický oddíl. zhutněné protokoly jsou užitečné pro obnovení stavu po havárii nebo selhání systému.

jsou užitečné pro paměťové služby, trvalé ukládání dat, opětovné načtení mezipaměti atd. důležitým případem použití datových toků je protokolování změn na klíčované, proměnlivé změny dat do databázové tabulky nebo změny na objektu v paměťové microservice.

zhutnění protokolu je granulovaný retenční mechanismus, který uchovává poslední aktualizaci pro každý klíč. protokol zhutněný protokol témat obsahuje úplný snímek konečných hodnot záznamu pro každý klíč záznamu, nejen nedávno změněné klíče.

kafka log zhutnění umožňuje následným spotřebitelům obnovit svůj stav z tématu protokolu zhutněného.

kafka log zhutňovací struktura

s zhutněným logem má log hlavu a ocas. hlava zhutněného protokolu je totožná s tradičním kafkovým logem. nové záznamy se připojí na konec hlavy.

veškeré zhutňování protokolu funguje na konci protokolu. pouze ocas se zhutní. záznamy v ocasu protokolu si zachovávají svůj původní posun, když jsou zapsány po přepsání pomocí vyčištění zhutnění .

kafka log zhutnění structure

log zhutnění structure

kafka log zhutnění základy

všechny zhutněné log offsety zůstávají v platnosti, i když záznam v offsetu byl zhutněn pryč jako spotřebitel dostane další nejvyšší offset.

kafka log zhutnění také umožňuje mazání. zpráva s klíčem a nulovým užitečným zatížením se chová jako náhrobek, značka odstranění tohoto klíče. náhrobky se po určité době vyčistí. zhutnění protokolu pravidelně běží na pozadí opakovaným kopírováním segmentů protokolu. zhutnění neblokuje čtení a může být škrteno, aby nedošlo k ovlivnění vstupů / výstupů výrobců a spotřebitelů.

kafka log proces zhutnění

 kafka log proces zhutnění

kafka log čištění zhutnění

pokud kafka spotřebitel zůstane chycen až do hlavy protokolu, vidí každý záznam, který je zapsán.

téma config min.compaction.lag.ms se používá k zajištění minimální doby, která musí uplynout před zhutněním zprávy. spotřebitel vidí všechny náhrobky, pokud spotřebitel dosáhne hlavy protokolu v období kratším, než je konfigurace tématu delete.retention.ms (výchozí hodnota je 24 hodin). protokol zhutnění se nikdy re-order zprávy, stačí odstranit některé. posun oddílu pro zprávu se nikdy nezmění.

každý spotřebitel, který čte od začátku protokolu, vidí alespoň konečný stav všech záznamů v pořadí, v jakém byly napsány.

kafka Log cleaner

připomeňme, že kafka téma má log. protokol je rozdělen na oddíly a oddíly jsou rozděleny do segmentů, které obsahují záznamy, které mají klíče a hodnoty.

kafka Log cleaner dělá protokol zhutnění. čistič protokolů má skupinu vláken pro zhutnění pozadí. tato vlákna překopírují soubory segmentů protokolu a odstraňují starší záznamy, jejichž klíč se v protokolu nedávno znovu objeví. každé zhutňovací vlákno si vybere protokol témat, který má nejvyšší poměr hlavy protokolu k ocasu protokolu. potom vlákno zhutnění obnoví protokol od začátku do konce a odstraní záznamy, jejichž klíče se objeví později v protokolu.

když čistič protokolů čistí segmenty logových oddílů, segmenty se okamžitě vymění do logového oddílu a nahradí starší segmenty. tímto způsobem zhutnění nevyžaduje zdvojnásobení prostoru celého oddílu, protože další místo na disku je vyžadováno pouze jedním dalším segmentem log partition-divide and conquer.

config tématu pro zhutnění protokolu

Chcete – li zapnout zhutnění tématu, použijte config tématu log.cleanup.policy=compact .

Chcete-li nastavit zpoždění pro zahájení zhutňování záznamů po jejich zápisu, použijte config tématu log.cleaner.min.compaction.lag.ms . záznamy se zhutní až po tomto období. nastavení dává spotřebitelům čas na získání každého záznamu.

přehled zhutnění protokolu

jaké jsou tři způsoby, jak může kafka Smazat Záznamy?

kafka může odstranit starší záznamy na základě času nebo velikosti protokolu. kafka také podporuje zhutnění protokolu pro zhutnění klíče záznamu.

k čemu je dobré zhutnění protokolu?

protože zhutnění protokolu zachovává poslední známou hodnotu, jedná se o úplný snímek nejnovějších záznamů, který je užitečný pro obnovení stavu po havárii nebo selhání systému pro službu v paměti, trvalé úložiště dat nebo opětovné načtení mezipaměti. umožňuje následným spotřebitelům obnovit svůj stav.

jaká je struktura zhutněného protokolu? popište strukturu.

s zhutněným logem má log hlavu a ocas. hlava zhutněného protokolu je totožná s tradičním kafkovým logem. nové záznamy se připojí na konec hlavy. veškeré zhutnění protokolu funguje na chvostu zhutněného protokolu.

po zhutnění se změní posuny záznamu záznamu? č.

co je segment oddílů?

připomeňme, že téma má protokol. protokol témat je rozdělen na oddíly a oddíly jsou rozděleny do segmentových souborů, které obsahují záznamy, které mají klíče a hodnoty. segmentové soubory umožňují rozdělit a dobýt, pokud jde o zhutnění protokolu. segmentový soubor je součástí oddílu. když čistič protokolů čistí segmenty oddílů protokolu, segmenty se vymění do oddílu protokolu, který okamžitě nahradí starší soubory segmentů. tímto způsobem zhutnění nevyžaduje zdvojnásobení prostoru celého oddílu, protože další místo na disku je vyžadováno pouze jedním dalším segmentem oddílu protokolu.

jean-paul azar pracuje ve společnosti Cloud . cloudurable poskytuje školení kafka, kafka consulting, podporu kafka a pomáhá při vytváření klastrů kafka v aws .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.