Kafka Architecture: Log Compaction

ez a bejegyzés valóban a Kafka építészetről szóló sorozatunkból származik , amely magában foglalja a kafka építészetét , a Kafka termelői építészetét , a Kafka fogyasztói építészetét és a kafka ökoszisztéma építészetét .

ezt a cikket erősen ihlette a Kafka szakasz a rönktömörítés körüli tervezésről . gondolhat rá, mint a szikla jegyzetek a Kafka tervezéséről a rönktömörítés körül .

a kafka törölheti a régebbi rekordokat az idő vagy a napló mérete alapján. a kafka támogatja a napló tömörítését a rekordkulcs tömörítéséhez is. a napló tömörítése azt jelenti, hogy a kafka megőrzi a rekord legújabb verzióját, és törli a régebbi verziókat a napló tömörítése során.

jean-paul Azar a cloudurable-nél dolgozik . a cloudurable Kafka képzést , Kafka tanácsadást , Kafka támogatást nyújt, és segít a kafka klaszterek létrehozásában az aws – ben .

kafka log tömörítés

a log tömörítés megőrzi legalább az utolsó ismert értéket minden rekordkulcshoz egyetlen témapartícióhoz. a tömörített naplók hasznosak az állapot visszaállításához összeomlás vagy rendszerhiba után.

hasznosak a memóriában lévő szolgáltatások, az állandó adattárolók, a gyorsítótár újratöltése stb. az adatfolyamok fontos felhasználási esete a kulcsos, változtatható adatok változásainak naplózása egy adatbázis-táblában vagy az objektum változásainak naplózása a memóriában lévő mikroszolgáltatásban.

a log tömörítés egy szemcsés megőrzési mechanizmus, amely megőrzi az egyes kulcsok utolsó frissítését. a log tömörített téma napló tartalmaz egy teljes pillanatképet a végső rekord értékeket minden rekord kulcs nem csak a közelmúltban megváltozott kulcsokat.

a kafka log tömörítés lehetővé teszi a downstream fogyasztók számára, hogy visszaállítsák állapotukat egy log tömörített témáról.

kafka rönktömörítő szerkezet

tömörített rönknél a rönknek feje és farka van. a tömörített rönk feje megegyezik a hagyományos kafka rönkökkel. az új rekordok a fej végére kerülnek.

minden rönktömörítés a rönk farkánál működik. csak a farok tömörül. a napló farkában lévő rekordok megtartják eredeti eltolódásukat, amikor a tömörítési tisztítással átírják őket .

kafka log tömörítési szerkezet

log tömörítési szerkezet

a Kafka log tömörítési alapjai

minden tömörített log eltolás érvényes marad, még akkor is, ha az eltolás rekordját tömörítették, mivel a fogyasztó a következő legmagasabb eltolást kapja.

kafka log tömörítés is lehetővé teszi a törlések. a kulccsal és null hasznos teherrel ellátott üzenet úgy viselkedik, mint egy sírkő, a kulcs törlési jelölője. a sírkövek egy idő után megtisztulnak. a napló tömörítése rendszeresen fut a háttérben a napló szegmensek újbóli másolásával. a tömörítés nem blokkolja az olvasást, és szabályozható, hogy elkerülje a gyártók és a fogyasztók i/o-jának befolyásolását.

kafka log tömörítési folyamat

kafka log tömörítési folyamat

kafka log tömörítési Tisztítás

ha egy kafka fogyasztó a napló élén marad, akkor minden feljegyzést lát.

topic config min.compaction.lag.ms megszokja, hogy garantáljon egy minimális időtartamot, amelynek el kell telnie az üzenet tömörítése előtt. a fogyasztó látja az összes sírkövek mindaddig, amíg a fogyasztó eléri feje egy napló rövidebb ideig, mint a téma config delete.retention.ms (Az alapértelmezett 24 óra). a napló tömörítése soha nem rendel újra üzeneteket, csak távolítson el néhányat. az üzenet partíció eltolása soha nem változik.

bármely fogyasztó, aki a napló kezdetétől olvas, legalább az összes rekord végső állapotát látja abban a sorrendben, ahogyan írták.

kafka log cleaner

emlékezzünk arra, hogy egy kafka témának van naplója. a naplót partíciókra bontják, a partíciókat pedig szegmensekre osztják, amelyek kulcsokkal és értékekkel rendelkező rekordokat tartalmaznak.

a kafka rönktisztító rönkötömörítést végez. a log cleaner egy medence háttér tömörítő szálak. ezek a szálak újramásolják a naplószegmens fájlokat, eltávolítva azokat a régebbi rekordokat, amelyek kulcsa a közelmúltban újra megjelenik a naplóban. minden tömörítési szál kiválasztja a téma naplóját, amelynek a legnagyobb a naplófej aránya a naplófarkhoz. ezután a tömörítési szál újramásolja a naplót az elejétől a végéig, eltávolítva azokat a rekordokat, amelyek kulcsai később fordulnak elő a naplóban.

amint a naplótisztító megtisztítja a naplópartíció szegmenseit, a szegmensek a naplópartícióba kerülnek, azonnal helyettesítve a régebbi szegmenseket. így a tömörítéshez nem szükséges a teljes partíció kétszerese, mivel a szükséges további lemezterület csak egy további naplópartíciós szegmens – oszd meg és hódítsd meg.

témakonfiguráció a napló tömörítéséhez

egy témakör tömörítésének bekapcsolásához használja a témakonfiguráció log.cleanup.policy=compact témakonfigurációt .

ha késleltetést szeretne beállítani a rekordok tömörítésének megkezdésére azok megírása után, használja a log.cleaner.min.compaction.lag.ms témakör konfigurálását . a feljegyzések csak ezen időszak után kerülnek tömörítésre. a Beállítás időt ad a fogyasztóknak minden rekord megszerzésére.

log compaction review

milyen három módon törölheti a Kafka a rekordokat?

a kafka törölheti a régebbi rekordokat az idő vagy a napló mérete alapján. a kafka támogatja a napló tömörítését a rekordkulcs tömörítéséhez is.

mire jó a log tömörítés?

mivel a log tömörítés megőrzi az utolsó ismert értéket, ez egy teljes pillanatkép a legújabb rekordokról, ezért hasznos a memórián belüli szolgáltatás, a tartós adattár vagy a gyorsítótár újratöltése esetén bekövetkező összeomlás vagy rendszerhiba utáni állapot visszaállításához. ez lehetővé teszi a downstream fogyasztók számára, hogy helyreállítsák állapotukat.

mi a tömörített napló szerkezete? írja le a szerkezetet.

tömörített rönknél a rönknek feje és farka van. a tömörített rönk feje megegyezik a hagyományos kafka rönkökkel. az új rekordok a fej végére kerülnek. minden rönktömörítés a tömörített rönk farkánál működik.

a tömörítés után változnak a naplórekord-eltolások? Nem.

mi az a partíciós szegmens?

emlékezzünk arra, hogy egy témának naplója van. a témanapló partíciókra van bontva, a partíciók pedig szegmensfájlokra vannak felosztva, amelyek kulcsokkal és értékekkel rendelkező rekordokat tartalmaznak. szegmens fájlok lehetővé teszik a divide and conquer, amikor a log tömörítés. a szegmensfájl a partíció része. mivel a log cleaner tisztítja log partíció szegmensek, a szegmensek kap cserélték a log partíció azonnal helyett a régebbi szegmens fájlokat. így a tömörítéshez nem szükséges a teljes partíció kétszerese, mivel a szükséges további lemezterület csak egy további naplópartíciós szegmens.

jean-paul Azar a cloudurable-nél dolgozik . a cloudurable Kafka képzést , Kafka tanácsadást , Kafka támogatást nyújt, és segít a kafka klaszterek létrehozásában az aws – ben .

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.