Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 10630|Odpoveď: 1

Podrobné vysvetlenie parametrov konfigurácie Kafka

[Kopírovať odkaz]
Zverejnené 24. 6. 2021 11:47:12 | | |
Konfigurácie sprostredkovateľa

NehnuteľnostiPredvolenýPopis
broker.id Každý broker môže byť identifikovaný jedinečným nezáporným celočíselným ID; Toto ID môže byť použité ako "meno" brokera a jeho existencia umožňuje brokerovi migrovať na iného hostiteľa/port bez zmätku spotrebiteľov. Môžete si vybrať akékoľvek číslo ako ID, pokiaľ je ID jedinečné.
log.dirs/tmp/kafka-logsCesta, kde Kafka ukladá dáta. Táto cesta nie je jedinečná, môže byť viacnásobná, a cesty je potrebné oddeliť len čiarkami; Kedykoľvek sa vytvorí nová partícia, vyberie sa tak, aby sa stala pod cestou, ktorá obsahuje najmenej partícií.
Prístav6667Server akceptuje port, ku ktorému sa klient pripája
zookeeper.connectnulaFormát spojovacieho reťazca ZooKeeper je: hostname:port, kde hostname a port sú hostiteľ a port uzla v klastri ZooKeeper. Aby ste sa mohli pripojiť k iným uzlom ZooKeeper, keď hostiteľ prestane fungovať, môžete vytvoriť viacero hostiteľov nasledovne:
hostname1:port1, hostname2:port2, hostname3:port3.

ZooKeeper umožňuje pridať "chroot" cestu na uloženie všetkých kafka dát v klastri pod konkrétnu cestu. Keď viacero Kafka klastrov alebo iných aplikácií používa ten istý ZooKeeper klaster, môžete touto metódou nastaviť cestu ukladania dát. Toto je možné implementovať formátovaním spojovacieho reťazca takto:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
Toto nastavenie ukladá všetky dáta z kafka klastra pod /chroot/path path. Všimnite si, že pred spustením makléra musíte vytvoriť túto cestu a spotrebitelia musia použiť rovnaký formát pripojenia.
message.max.bajtov1000000Maximálna veľkosť správ, ktoré server môže prijať. Je dôležité, aby nastavenia spotrebiteľa a výrobcu týkajúce sa tejto vlastnosti boli synchronizované, inak je správa publikovaná producentom pre spotrebiteľa príliš veľká.
num.network.threads3Počet sieťových vlákien, ktoré server používa na spracovanie sieťových požiadaviek; Vo všeobecnosti nemusíte túto nehnuteľnosť meniť.
num.io.threads8Počet I/O vlákien používaných serverom na spracovanie požiadaviek; Počet vlákien by mal byť aspoň rovnaký ako počet pevných diskov.
background.threads4Počet vlákien použitých na spracovanie na pozadí, ako je mazanie súborov; Nemusíš meniť túto nehnuteľnosť.
queued.max.requests500Maximálny počet požiadaviek, ktoré môže I/O vlákno spracovať do fronty, kým sieťové vlákno prestane čítať nové požiadavky.
host.namenulameno hostiteľa makléra; Ak je hostname už nastavené, broker bude viazaný iba na túto adresu; Ak tam nie je žiadne nastavenie, naviaže sa na všetky rozhrania a publikuje jednu kópiu do ZK
advertised.host.namenulaAk je nastavený, posiela sa producentom, spotrebiteľom a ďalším sprostredkovateľom ako hostiteľské meno makléra
advertised.portnulaTento port je poskytovaný producentom, spotrebiteľom a ďalším sprostredkovateľom a slúži na vytvorenie spojenia; Nastavenie je potrebné len vtedy, ak sú skutočný port a port, ktorý server potrebuje naviazať, odlišné.
socket.send.buffer.bytes100 * 1024SO_SNDBUFF veľkosť cache, ktorú server používa na prepojenie socketov
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF veľkosť cache, ktorú server používa na pripojenie k socketom
socket.request.max.bajtov100 * 1024 * 1024Maximálna veľkosť požiadavky povolená serverom;  Tým sa vyhnete pretečeniu servera, ktoré by malo byť menšie ako veľkosť haldy v Jave
num.partitions1Ak pri vytváraní témy nie je uvedený počet partícií, toto číslo bude predvoleným počtom partícií pod témou.
log.segment.bytes1014*1024*1024Logy témovej partície sú uložené v mnohých súboroch v určitom adresári, ktorý rozdeľuje logy partície na segmenty; Tento atribút je maximálna veľkosť každého súboru; Keď rozmery dosiahnu túto hodnotu, vytvorí sa nový súbor. Toto nastavenie možno prepísať základom každej témy.
Zobraziť  Prihlásenie na hypertextový odkaz je viditeľné.
log.roll.hours24 * 7Aj keď súbor nedosiahne log.segment.bytes, nový súbor sa vytvorí vždy, keď čas vytvorenia súboru dosiahne túto vlastnosť. Toto nastavenie je možné tiež prepísať nastavením na úrovni témy;
PohľadPrihlásenie na hypertextový odkaz je viditeľné.
log.cleanup.policyvymazať
log.retention.minutes a log.retention.hours7 dníČas, kedy bol každý logový súbor uložený pred jeho vymazaním. Predvolený čas ukladania dát je rovnaký pre všetky témy.
log.retention.minutes a log.retention.bytes sa používajú na nastavenie vymazania logových súborov, bez ohľadu na to, ktorá vlastnosť bola pretečená.
Toto nastavenie vlastností je možné prepísať, keď je téma v podstate nastavená.
PohľadPrihlásenie na hypertextový odkaz je viditeľné.
log.retention.bytes-1Celkové množstvo dát uložených každou partíciou pod každou témou; Upozorňujeme, že toto je horný limit na jednu partíciu, takže toto číslo vynásobené počtom partícií je celkové množstvo dát uložených na tému. Tiež si všimnite: Ak sú nastavené log.retention.hours aj log.retention.bytes, prekročenie ktoréhokoľvek limitu spôsobí vymazanie segmentového súboru.
Upozorňujeme, že toto nastavenie je možné prepísať každou témou.
PohľadPrihlásenie na hypertextový odkaz je viditeľné.
log.retention.check.interval.ms5 minútSkontrolujte interval medzi logom segmentovanými súbormi, aby ste zistili, či atribúty súborov spĺňajú požiadavky na vymazanie.
log.cleaner.enablefalseKeď je táto vlastnosť nastavená na false, bude vymazaná, keď je log uložený na maximálny čas alebo veľkosť. Ak je nastavená na true, stane sa to, keď atribút uloženia dosiahne hornú hranicuPrihlásenie na hypertextový odkaz je viditeľné.
log.cleaner.threads1Počet vlákien vykonávajúcich logaritmickú kompresiu
log.cleaner.io.max.bajtov za sekunduŽiadnyMaximálny počet vstupov/výstupov, ktoré môže mať upratovač logov pri vykonávaní zhutnenia logu. Toto nastavenie obmedzuje čističa, aby nezasahoval do aktívnych požiadaviek služieb.
log.cleaner.io.buffer.size500*1024*1024Log Cleaner indexuje logy počas procesu čistenia a znižuje veľkosť použitej cache. Najlepšie je nastaviť ho veľký, aby poskytol dostatok pamäte.
log.cleaner.io.buffer.load.factor512*1024Veľkosť I/O úseku potrebného na čistenie logov. Toto nastavenie nemusíš meniť.
log.cleaner.io.buffer.load.factor0.9load factor hashovacej tabuľky používanej pri čistení logov; Nemusíte meniť túto možnosť.
log.cleaner.backoff.ms15000Vykonáva sa časový interval, v ktorom sa kmeň čistí
log.cleaner.min.cleanable.ratio0.5Táto konfigurácia riadi, ako často sa kompaktor logov snaží vyčistiť logy (predpokladá saPrihlásenie na hypertextový odkaz je viditeľné.je otvorený). Štandardne sa vyhýbajte čisteniu viac ako 50 % kmeňov. Tento pomer je viazaný na maximálny priestor spotrebovaný záložným logom (50 % logov je stlačených na 50 %). Vyššia sadzba znamená menej odpadu a efektívnejšie čistenie väčšieho priestoru. Toto nastavenie je možné prepísať v každom tematickom nastavení.
PohľadPrihlásenie na hypertextový odkaz je viditeľné.
log.cleaner.delete.retention.ms1 deňčas skladovania; Maximálny čas na uchovávanie stlačených kmeňov; Je to tiež maximálny čas, ktorý klient spotrebuje na spracovanie správ, a rozdiel medzi log.retention.minutes je v tom, že jeden riadi nekomprimované dáta a druhý komprimované dáta, ktoré budú prepísané do špecifikovaného času pri vytvorení témy.
log.index.size.max.bajtov10*1024*1024Maximálna veľkosť na jeden segment logaritu. Všimnite si, že ak veľkosť logu dosiahne túto hodnotu, je potrebné vygenerovať nový segment logu, aj keď veľkosť neprekročí limit log.segment.bytes.
log.index.interval.bytes4096Pri načítaní musíte skenovať najbližší posun s určitým množstvom priestoru, čím väčšie nastavenie, tým lepšie, zvyčajne používajte predvolenú hodnotu
log.flush.interval.messagesLong.MaxValueLogfile "sync" na disk pred zhromažďovaním správ. Keďže prevádzka diskového IO je pomalá, ale zároveň nevyhnutným prostriedkom "spoľahlivosti dát", skontrolujte, či je potrebný časový interval na vytvrdenie na pevný disk. Ak je táto hodnota príliš veľká, povedie to k príliš dlhému času "synchronizácie" (blokovanie IO), ak je táto hodnota príliš malá, povedie to k dlhému času "fsync" (blokovanie IO), ak je táto hodnota príliš malá, povedie to k veľkému počtu časov "synchronizácie", čo znamená, že celkový klientsky požiadavok má určité oneskorenie a zlyhanie fyzického servera povedie k strate správ bez fsync.
log.flush.scheduler.interval.msLong.MaxValueSkontrolujte, či sú potrebné intervaly fsync
log.flush.interval.msLong.MaxValueToto číslo sa používa na kontrolu časového intervalu "fsync", ak počet správ nikdy nedosiahne počet správ upevnených na disku, ale časový interval od poslednej synchronizácie disku dosiahne prah, spustí sa aj synchronizácia disku.
log.delete.delay.ms60000Doba uchovávania po vyčistení súboru v indexe zvyčajne nie je potrebné meniť
auto.create.topics.enabletrueČi povoliť automatické vytváranie tém. Ak je to pravda, automaticky vytvorí tému, ktorá neexistuje, keď produkcia alebo načítanie neexistujú. Inak musíte použiť príkazový riadok na vytvorenie témy
controller.socket.timeout.ms30000Čas vypršania socketu, keď radič správy partícií vykoná zálohu.
controller.message.queue.sizeInt.MaxValuecontroller-to-broker-channles
default.replication.factor1Predvolený počet záložných kópií sa vzťahuje iba na automaticky vytvorené témy
replica.lag.time.max.ms10000Ak nasledovník v tomto čase nepošle fetch požiadavku, vedúci nasledujúceho odstráni z ISR a považuje nasledovníka za zaveseného
replica.lag.max.messages4000Ak má replika viac ako tento počet nezálohovaných, návodca odstráni nasledovníka a považuje ho za zavesený
replica.socket.timeout.ms30*1000Čas vypršania líderov pre požiadavky siete socket pri zálohovaní dát
replica.socket.receive.buffer.bytes64*1024Socket prijímací buffer pri odosielaní sieťovej požiadavky lídrovi počas zálohovania
replica.fetch.max.bajtov1024*1024Maximálna hodnota každého načítania v čase zálohovania
replica.fetch.min.bytes500Maximálna doba čakania, kým dáta dorazia k lídrovi, keď vedúci vykoná zálohovaciu požiadavku
replica.fetch.min.bytes1Najmenšia veľkosť odpovede po každom načítaní pri zálohovaní
num.replica.fetchers1Počet vlákien, ktoré zálohujú dáta z leadera
replica.high.watermark.checkpoint.interval.ms5000Každá replika kontroluje, ako často sa najvyššia hladina vody vytvrdzuje
fetch.purgatory.purge.interval.requests1000fetch request the purge interval
producer.purgatory.purge.interval.requests1000Producent žiada o interval prečistenia
zookeeper.session.timeout.ms6000Časový limit sedenia ošetrovateľa zvierat.
zookeeper.connection.timeout.ms6000Maximálna doba, ktorú klient čaká na nadviazanie spojenia so zookeeperom
zookeeper.sync.time.ms2000ZK nasledovník zaostáva za lídrom ZK najdlhšie
controlled.shutdown.enabletrueČi je možné kontrolovať zatvorenie makléra. Ak je to možné, maklér bude schopný presunúť všetkých lídrov k iným maklérom pred uzavretím obchodu. To znižuje nedostupnosť počas procesu vypnutia.
controlled.shutdown.max.retries3Počet príkazov, ktoré dokážu úspešne vykonať vypnutie pred vykonaním neúplného vypnutia.
controlled.shutdown.retry.backoff.ms5000Čas spätného vypnutia medzi vypnutiami
auto.leader.rebalance.enabletrueAk je to pravda, kontrolór automaticky vyváži vedenie brokerov nad partíciami
leader.imbalance.per.broker.percentage10Maximálny pomer nerovnováhy povolený každým maklérom
leader.imbalance.check.interval.seconds300Skontrolujte frekvenciu nerovnováhy lídrov
offset.metadata.max.bajtov4096Umožňuje klientom uložiť maximálny počet ich offsetov
max.connections.per.ipInt.MaxValueMaximálny počet spojení na jedného brokera je možné uskutočniť na každej IP adrese
max.connections.per.ip.overrides Maximálne pokrytie predvoleného pripojenia na jednu IP alebo meno hostiteľa
connections.max.idle.ms600000Časový limit pre prázdne pripojenia
log.roll.jitter. {ms,hours}0Maximálny počet jitterov abstrahovaný z logRollTimeMillis
num.recovery.threads.per.data.dir1Počet vlákien, ktoré každý dátový adresár používa na logovanie obnovy
unclean.leader.election.enabletrueUvádza, či je možné použiť nastavenie non-replicas v ISR ako líder
delete.topic.enablefalseSchopnosť mazať témy
offsets.topic.num.partitions50Počet partícií pre tému commitu offsetu. Keďže zmena tejto hodnoty po nasadení momentálne nie je podporovaná, odporúčame použiť vyššie nastavenie pre produkciu (napr. 100-200).
offsets.topic.retention.minutes1440Offsety, ktoré existovali dlhšie ako tento časový limit, budú označené ako čakajúce na vymazanie
offsets.retention.check.interval.ms600000Správca offsetov kontroluje frekvenciu zastaraných offsetov
offsets.topic.replication.factor3Počet záložných kópií offsetu témy. Odporúča sa nastaviť vyššie čísla, aby sa zaručila vyššia dostupnosť
offset.topic.segment.bytes104857600Téma kompenzácií.
offsets.load.buffer.size5242880Toto nastavenie súvisí s veľkosťou šarže a používa sa pri čítaní z offsetového segmentu.
offsets.commit.required.acks-1Počet potvrdení musí byť nastavený predtým, než je commit offsetu prijateľný, a vo všeobecnosti ho nie je potrebné meniť


NehnuteľnostiPredvolenýPredvolená vlastnosť serveraPopis
cleanup.policyvymazaťlog.cleanup.policyBuď "vymazať" alebo "zhutniť"; Tento reťazec naznačuje, ako využiť starú logaritmickú časť; Predvolená metóda ("vymazať") vyhodí starú časť, keď sa dosiahne ich čas recyklácie alebo limit veľkosti. "kompaktné" stlačí klády
delete.retention.ms86400000 (24 hodín)log.cleaner.delete.retention.msRozdiel medzi log.retention.minutes je v tom, že jeden ovláda nekomprimované dáta a druhý komprimované dáta. Táto konfigurácia môže byť prepísaná parametrami pinovania pri vytváraní témy
flush.messagesŽiadnylog.flush.interval.messagesTáto konfigurácia špecifikuje časový interval na vynútenie fsync logov. Napríklad, ak je táto možnosť nastavená na 1, fsync je potrebný po každej správe, a ak je nastavený na 5, fsync je potrebný pre každých 5 správ. Vo všeobecnosti sa odporúča túto hodnotu nenastavovať. Nastavenie tohto parametra vyžaduje nevyhnutný kompromis medzi "spoľahlivosťou dát" a "výkonom". Ak je táto hodnota príliš veľká, spôsobí to dlhý čas na "fsync" pri každom pokuse (IO blokovanie), a ak je táto hodnota príliš malá, povedie to k veľkému počtu "fsync", čo tiež znamená, že v celkovej požiadavke klienta je určitý oneskorenie. Fyzické zlyhanie servera spôsobí stratu správ bez fsync.
flush.msŽiadnylog.flush.interval.msTáto konfigurácia sa používa na pripnutie časového intervalu medzi vynútením fsync logov na disk; Napríklad, ak je nastavený na 1000, fsync je potrebný každých 1000 ms. Táto možnosť sa vo všeobecnosti neodporúča
index.interval.bytes4096log.index.interval.bytesPredvolené nastavenie zabezpečuje, že k správe pridávame index každých 4096 bajtov a viac indexov približuje čítanú správu, ale veľkosť indexu sa zväčší. Táto možnosť zvyčajne nie je povinná
max.message.bytes1000000max.message.bytesMaximálna veľkosť Kafkovej pripojenej správy. Všimnite si, že ak zväčšíte túto veľkosť, musíte tiež zvýšiť veľkosť načítania vášho spotrebiteľa, aby spotrebiteľ mohol načítať správy do týchto maximálnych veľkostí.
min.cleanable.dirty.ratio0.5min.cleanable.dirty.ratioTáto konfigurácia určuje, ako často sa kompresor dreva pokúša vyčistiť kmene. Štandardne sa vyhýbajú záznamom s mierou kompresie nad 50 %. Tento pomer zabraňuje najväčšiemu plytvaniu miestom
min.insync.replicas1min.insync.replicasKeď je producent nastavený na request.required.acks na -1, min.insync.replicas určuje minimálny počet replík (každý zápis repica musí byť úspešný) a ak tento počet nie je dosiahnutý, producent vytvorí výnimku.
retention.bytesŽiadnylog.retention.bytesAk použijete politiku uchovávania "delete", táto konfigurácia sa vzťahuje na maximálnu veľkosť, ktorú môže log dosiahnuť pred jeho vymazaním. Predvolene neexistuje limit veľkosti, ale len časový limit
retention.ms7 dnílog.retention.minutesAk použijete politiku uchovávania "delete", táto konfigurácia sa vzťahuje na čas, kedy bol log uložený pred zápisom do logu vymazania.
segment.bytes1GBlog.segment.bytesV Kafkovej metóde sa logy ukladajú v častiach, pričom táto konfigurácia sa vzťahuje na veľkosť kmeňov rozdelených na časti
segment.index.bytes10MBlog.index.size.max.bajtovTáto konfigurácia je približne veľkosti indexového súboru mapovaného medzi offsety a umiestnenia súboru; Táto konfigurácia zvyčajne nie je potrebné meniť
segment.ms7 dnílog.roll.hoursAj keď súbor log chunk nedosiahne veľkosť, ktorú je potrebné vymazať alebo komprimovať, keď log time dosiahne túto hornú hranicu, nový log chunk súbor bude nútený vytvoriť nový log chunk súbor
segment.jitter.ms0 log.roll.jitter. {ms,hours}Maximálny jitter na odpočítanie od logRollTimeMillis.


Spotrebiteľské konfigurácie

NehnuteľnostiPredvolenýPopis
group.id Reťazec, ktorý jednoznačne identifikuje skupinu, v ktorej sa nachádza spotrebiteľský proces, a ak je nastavené rovnaké ID skupiny, znamená to, že tieto procesy patria do tej istej spotrebiteľskej skupiny
zookeeper.connect Špecifikujte reťazec Zookeeper pripojenia, formát je hostname:port, tu sú hostiteľ aj port hostiteľ aj port Zookeeper servera, aby ste predišli strate kontaktu po výpadku Zookeeper zariadenia, môžete určiť viacero hostname:ports, pričom ako oddelenie je čiarka:
hostname1:port1,hostname2:port2,hostname3:port3
Cestu chroot ZooKeeperu môžete pridať k spojovacému reťazcu ZooKeeperu, ktorý sa používa na uloženie vlastných dát, takým spôsobom:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
consumer.idnulaNie je potrebné žiadne nastavenie a zvyčajne sa generuje automaticky
socket.timeout.ms30*100Časové limity pre sieťové požiadavky. Skutočný časový limit je max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes64*1024Socket sa používa na prijímanie veľkosti cache sieťových požiadaviek
fetch.message.max.bajtov1024*1024Maximálny počet bajtov na správu načítania na jednu požiadavku na načítanie. Tieto bajty budú spravované v pamäti používanej pre každú partíciu, takže toto nastavenie bude riadiť množstvo pamäte používané spotrebiteľom. Veľkosť požiadavky na načítanie musí byť aspoň rovnaká maximálnej veľkosti správy povolenej serverom, inak je veľkosť správy, ktorú môže producent odoslať, väčšia než veľkosť, ktorú môže spotrebiteľ spotrebovať.
num.consumer.fetchers1Počet vlákien na načítanie použitých na načítanie dát
auto.commit.enabletrueAk je to pravda, posun správy, ktorú spotrebiteľ získa, sa automaticky synchronizuje so zookeeperom. Tento commit offset použije nový spotrebiteľ, keď sa proces zasekne
auto.commit.interval.ms60*1000Frekvencia, s akou zákazník odosiela offset ošetrovateľovi, je v priebehu sekúnd
queued.max.message.chunks2Maximálny počet správ použitých na ukladanie do vyrovnávacej pamäte na spotrebu. Každý chunk musí byť rovnaký ako fetch.message.max.bytes
rebalance.max.pokusy4Keď je do skupiny pridaný nový spotrebiteľ, skupina spotrebiteľov sa snaží vyvážiť počet partícií pridelených každému spotrebiteľovi. Ak sa zmení spotrebiteľská kolekcia, toto vyvažovanie zlyhá a znovu sa zaregistruje počas vykonávania alokácie
fetch.min.bytes1Minimálny počet bajtov, ktoré by mal server vrátiť pri každom požiadavke na načítanie. Ak sa nevráti dostatok dát, požiadavka čaká, kým sa vráti dostatok údajov.
fetch.wait.max.ms100Ak nie je dostatok dát na uspokojenie fetch.min.bytes, táto konfigurácia označuje maximálny čas, ktorý server zablokuje pred odpoveďou na fetch požiadavku.
rebalance.backoff.ms2000Čas na odstúpenie pred opätovným pokusom o Reblance
refresh.leader.backoff.ms200Existuje čas na odstup, než sa pokúsime zistiť, či líder rozdelenia stratil svoje vedenie
auto.offset.resetnajväčšíAk v zookeeper nie je inicializovaný offset, ak offset je odpoveďou na nasledujúcu hodnotu:
najmenší: Automatický reset offset na najmenší offset
najväčší: Automatický reset offset na offset najväčšieho
Čokoľvek iné: Dáva to výnimku pre spotrebiteľa
consumer.timeout.ms-1Ak správa nie je dostupná, aj po určitom čase čakania, vyhodí sa výnimka na časový limit
exclude.internal.topicstrueČi sprístupniť správy z interných tém spotrebiteľom
paritition.assignment.strategyRozsahVyberte politiku priraďovania partícií do spotrebiteľského toku, voliteľne rozsah, roundrobin
client.idHodnota ID skupinyje používateľsky špecifický reťazec, ktorý pomáha sledovať volania v každej požiadavke. Logicky by to malo potvrdiť aplikáciu, ktorá požiadavku vygenerovala
zookeeper.session.timeout.ms6000Časové limity pre sedenia ošetrovateľov zvierat. Ak spotrebiteľ počas tohto času nepošle správu o tlkotu srdca ošetrovateľovi, považuje sa za zavesenú a vytvorí sa reblance
zookeeper.connection.timeout.ms6000Maximálna doba čakania, kým klient nadviaže spojenie so Zookeeperom
zookeeper.sync.time.ms2000Nasledovníci ZK môžu zaostávať za lídrom ZK maximálne dlho
offsets.storageOšetrovateľ zvieratMiesta používané na skladovanie offsetov: Zookeeper alebo Kafka
offset.channel.backoff.ms1000Čas spätného ukončenia pri opätovnom pripojení na kanál offsetov alebo opätovnom pokuse o načítanie/commit požiadavky na neúspešný offset
offsets.channel.socket.timeout.ms10000Časový limit socketu pre odpoveď na odpoveď na požiadavku na načítanie/commit pri čítaní offsetu. Tento časový limit využíva požiadavka consumerMetadata na žiadosť o správu offsetu
offsets.commit.max.retries5Počet opakovaných pokusov o commit offsetu. Tento pokus sa používa len na offsetové commity medzi vypnutím. On
dual.commit.enabledtrueAk použiješ "kafka" ako offsets.storage, môžeš commset commitovať do zookeeperu dvakrát (a raz do kafky). Toto je nevyhnutné pri migrácii z offsetového úložiska založeného na Zookeeper na offsetové úložisko založené na Kafke. Pre akúkoľvek spotrebiteľskú skupinu je bezpečné túto možnosť po dokončení migrácie vypnúť
partition.assignment.strategyRozsahVyberte si medzi politikami "rozsah" a "roundrobin" ako politiku priraďovania partícií spotrebiteľským dátovým tokom; Cirkulárny alokátor partcií alokuje všetky dostupné partície, ako aj všetky dostupné spotrebiteľské vlákna. Priradí slučku partície spotrebiteľskému vláknu. Ak sú všetky spotrebiteľské inštancie pripísané k determined, rozdelenia sa rozdelia na deterministické rozdelenia. Stratégia alokácie round-robin je možná len vtedy, ak sú splnené nasledujúce podmienky: (1) Každá téma má rovnaký počet dátových tokov na počet spotrebiteľov. (2) Zbierka prihlásených tém sa určuje pre každú spotrebiteľskú inštanciu v spotrebiteľskej skupine.


Konfigurácie producentov

NehnuteľnostiPredvolenýPopis
metadata.broker.list Slúžte si na vlastnú výrobu. Producer sa používa len na získavanie metadát (témy, partície, repliky). Pripojenie socketu na odoslanie skutočných dát bude vytvorené na základe vrátených metadát. Formát je:
host1:port1,host2:port2
Tento zoznam môže byť podzoznam maklérov alebo VIP odkazujúci na maklérov
request.required.acks0Táto konfigurácia je hodnotou potvrdenia, ktorá indikuje, kedy je požiadavka na produkciu považovaná za dokončenú. Konkrétne, koľko ďalších maklérov muselo predložiť údaje do svojich logov a potvrdiť tieto informácie svojmu vedúcemu. Typické hodnoty zahŕňajú:
0: Označuje, že producent nikdy nečaká na potvrdenie od makléra (rovnaké správanie ako pri 0,7). Táto možnosť poskytuje najmenšiu latenciu, ale zároveň najväčšie riziko (pretože pri výpadku servera dochádza k strate dát).
1: Označuje, že replika lídra dostala potvrdenie dát. Táto možnosť má nízku latenciu a zabezpečuje, že server potvrdí prijatie.
-1: Producent dostane potvrdenie, že všetky synchronizované repliky dostali dáta. Latencia je najväčšia, avšak táto metóda úplne neeliminuje riziko straty správ, pretože počet synchronizovaných replík môže byť 1. Ak chcete zabezpečiť, že niektoré repliky prijímajú dáta, mali by ste nastaviť možnosť min.insync.replicas v nastaveniach na úrovni témy. Prečítajte si návrhovú dokumentáciu pre podrobnejšiu diskusiu.
request.timeout.ms10000Broker sa snaží čo najlepšie implementovať požiadavku request.required.acks, inak sa klientovi pošle chyba
producer.typesynchronizáciaTáto možnosť pripína, či je správa odoslaná asynchrónne vo vlákne na pozadí. Správne hodnoty:
(1) asynchrónne: Asynchrónne odosielanie
(2) synchronizácia: Synchronizované odosielanie
Nastavením producenta na asynchrónny režim môžeme spracovávať požiadavky v dávkach (čo je dobré pre vyššiu priepustnosť), ale zároveň to vytvára možnosť, že klientský stroj stratí neodoslané dáta
serializer.classkafka.serializer.DefaultEncoderKategória serializácie správy. Predvolený enkodér zadá jeden bajt[] a vráti rovnaký bajt[]
key.serializer.class Trieda serializácie pre kľúčové slová. Ak to nie je uvedené, predvolene sa správa zodpovedá
partitioner.classkafka.producer.DefaultPartitionertrieda partitioner na rozdelenie správ medzi podtémy. Predvolený partitioner je založený na hash tabuľke kľúča
compression.codecžiadnyTento parameter môže nastaviť kodek na kompresiu dát, ktorý je možné vybrať ako "žiadne", "gzip", "snappy".
compressed.topicsnulaTento parameter možno použiť na určenie, či sú určité témy komprimované. Ak je komprimovaný kodek iný ako NoCompressCodec, tieto kodeky sa aplikujú na špecifikované témy. Ak je zoznam komprimovaných tém prázdny, aplikujte konkrétny komprimovaný kodek na všetky témy. Ak je komprimovaný kodek NoCompressionCodec, kompresia nie je dostupná pre všetky témy.
message.send.max.retries3Tento parameter spôsobí, že producent automaticky zopakuje neúspešné požiadavky na odoslanie. Tento parameter určuje počet opakovaní. Poznámka: Nastavenie hodnoty inej ako 0 spôsobí opakovanie určitých sieťových chýb: spôsobí odosielanie a stratu potvrdenia
retry.backoff.ms100Pred každým opakovaným pokusom producent aktualizuje metadáta príslušnej témy, aby zistil, či je priradený nový vedúci. Keďže výber lídra trvá trochu času, táto možnosť špecifikuje, ako dlho musí producent počkať, kým aktualizuje metadáta.
topic.metadata.refresh.interval.ms600*1000Producent zvyčajne aktualizuje metadáta témy v niektorých scenároch zlyhania (chýba partícia, nedostupný leader a pod.). Prejde pravidelným cyklom. Ak nastavíte zápornú hodnotu, metadáta sa aktualizujú len v prípade zlyhania. Ak je nastavené na 0, metadáta sa aktualizujú po odoslaní každej správy (táto možnosť sa neodporúča, systém spotrebúva príliš veľa). Dôležité: Aktualizácie nastávajú až po odoslaní správy, takže ak producent správu nikdy neodosla, metadáta sa nikdy neaktualizujú.
queue.buffering.max.ms5000Maximálny časový interval, v ktorom používateľ ukladá dáta do vyrovnávacej pamäte pri použití asynchrónneho režimu. Napríklad, ak je správa nastavená na 100, správy do 100 ms budú spracované v dávkach. To zlepší priepustnosť, ale zvýši latenciu vďaka cache.
queue.buffering.max.messages10000Pri použití asynchrónneho režimu musí byť maximálny počet neodoslaných správ, ktoré môžu byť uložené do fronty do vyrovnávacej pamäte pred producentom, zablokovaný alebo stratou dát
batch.num.messages200Pri použití asynchrónneho režimu môžete dávkovo spracovať maximálny počet správ. Alebo počet správ dorazil online alebo queue.buffer.max.ms dorazil a producent to spracuje
send.buffer.bytes100*1024Veľkosť cache pre zápis socketu
client.id“”Toto ID klienta je používateľsky špecifický reťazec, ktorý je zahrnutý v každej požiadavke na sledovanie hovoru, a logicky by mal byť schopný potvrdiť, že aplikácia požiadavku vykonala.


Konfigurácie producentov

MenoTypPredvolenýVýznamPopis
boostrap.serversZoznam vysokoSkupina host/port na nadviazanie spojenia s Kafka klastrom. Dáta budú načítané rovnomerne na všetkých serveroch, bez ohľadu na to, ktorý server je určený na bootstrap. Tento zoznam ovplyvňuje iba inicializované hostiteľy (ktoré sa používajú na objavenie všetkých serverov). Tento formát zoznamu:
host1:port1,host2:port2,...
Keďže tieto servery slúžia len na inicializáciu spojení na zistenie všetkých členov klastra (ktoré sa môžu dynamicky meniť), tento zoznam nemusí obsahovať všetky servery (možno budete chcieť viac ako jeden server, hoci v tomto prípade môže byť jeden server nefunkčný). Ak sa v tomto zozname neobjaví žiadny server, odosielanie dát zlyhá, kým nebude zoznam dostupný.
ACKSStruna1vysokoProducent potrebuje signál zo servera na potvrdenie prijatia dát po prijatí údajov, pričom táto konfigurácia sa vzťahuje na to, koľko takýchto potvrdenia signálov dodávateľ potrebuje. Táto konfigurácia v skutočnosti predstavuje dostupnosť záloh dát. Nasledujúce nastavenia sú bežné možnosti:
(1) acks=0: Nastavené na 0 znamená, že producent nemusí čakať na potvrdenie prijatých informácií. Replika bude okamžite pridaná do socket bufferu a považovaná za odoslanú. V tomto prípade nie je zaručené, že server úspešne prijal dáta, a opätovné skúšanie konfigurácie nebude fungovať (pretože klient nevie, či zlyhalo) a offset spätnej väzby bude vždy nastavený na -1.
(2) acks=1: To znamená, že aspoň počkajte, kým leader úspešne zapíše dáta do lokálneho logu, ale nie na úspešný zápis všetkých followerov. V takom prípade, ak follower úspešne nezálohuje dáta a vedúci opäť zloží, správa sa stratí.
(3) acks=all: To znamená, že líder musí počkať, kým všetky zálohy úspešne zapíšu logy, a táto stratégia zabezpečí, že dáta nebudú stratené, pokiaľ jedna záloha prežije. Toto je najsilnejšia záruka.
(4) Sú tiež možné aj iné nastavenia, ako acks=2, ktoré vyžadujú určitý počet acks, ale táto stratégia sa vo všeobecnosti zriedka používa.
buffer.memorydlhý33554432vysokoProducent môže slúžiť na uloženie veľkosti pamäte dát do vyrovnávacej pamäte. Ak sú dáta generované rýchlejšie, než sú odoslané brokerovi, producent zablokuje alebo vyhodí výnimku, označenú "block.on.buffer.full".

Toto nastavenie bude súvisieť s celkovou pamäťou, ktorú môže producent použiť, ale nie je to tvrdý limit, pretože nie všetka pamäť používaná producentom sa využíva na cache. Časť dodatočnej pamäte sa používa na kompresiu (ak je kompresia zavedená) a časť na požiadavky na údržbu.
Kompresia.typStrunažiadnyvysokoProducer je typ kompresie používaný na kompresiu dát. Predvolená je nekomprimovaná. Správne hodnoty voličov sú žiadne, gzip, snappy.
Kompresia je najvhodnejšia pri dávkovom spracovaní, čím viac správ sa spracuje v dávkach, tým lepší je výkon kompresie.
Opakované pokusyint0vysokoNastavenie hodnoty väčšej ako 0 spôsobí, že klient po ich zlyhaní odošle akékoľvek dáta znova. Upozorňujeme, že tieto opakovania sa nelíšia od tých, keď klient dostane chybu odoslania. Umožňuje opätovné pokusy potenciálne zmeniť poradie dát, ak sú oba záznamy správ odoslané na tú istú partíciu, prvá správa zlyhá, druhá správa sa objaví skôr ako prvá.
batch.sizeint16384StrednáProducent sa pokúsi dávkovať záznamy správ, aby znížil počet požiadaviek. To zlepší výkon medzi klientom a serverom. Táto konfigurácia riadi predvolený počet bajtov správ dávkového spracovania.
Nerobia sa žiadne pokusy spracovať bajty správ väčšie ako tento počet bajtov.
Požiadavky zaslané brokerom budú obsahovať viacero dávok, ktoré budú obsahovať jednu požiadavku pre každú partíciu.
Menšie hodnoty dávkovania sa používajú menej a môžu znížiť priepustnosť (0 použije iba dávkové spracovanie). Väčšie dávkové hodnoty zaberajú viac miesta v pamäti, takže je potrebné alokovať pamäť na konkrétne dávkové hodnoty.
client.idStruna StrednáTento reťazec sa odosiela serveru pri vykonaní požiadavky. Účelom je byť schopný vystopovať zdroj požiadaviek, aby niektoré aplikácie mimo IP/Port povoleného zoznamu mohli posielať informácie. Táto aplikácia dokáže nastaviť akýkoľvek reťazec, pretože nemá žiadny funkčný účel okrem nahrávania a sledovania
linger.msdlhý0StrednáSkupina producentov zhromaždí všetky správy, ktoré prídu medzi požiadavkou a odoslaním, a zaznamená samostatnú dávku požiadaviek. Typicky sa to deje len vtedy, keď je záznam generovaný rýchlejšie ako je odosielacia rýchlosť. Avšak za určitých podmienok bude klient chcieť znížiť počet požiadaviek, alebo dokonca na strednú záťaž. Toto nastavenie sa vykonáva pridaním malého oneskorenia – t. j. namiesto okamžitého odoslania záznamu producent počká na stanovený čas oneskorenia, aby mohol odoslať ďalšie záznamy správ, ktoré je možné dávkovať. Toto možno považovať za podobný algoritmus ako TCP Nagle. Toto nastavenie nastavuje vyššiu hranicu latencie pre batchovanie: keď získame veľkosť batch.party partície, okamžite ju odošle bez ohľadu na toto nastavenie, ale ak dostaneme správu s oveľa menším počtom bajtov než toto nastavenie, musíme "zostať" na konkrétny čas, aby sme dostali viac správ. Toto nastavenie je predvolene nastavené na 0, teda bez oneskorenia. Nastavenie linger.ms=5 napríklad zníži počet požiadaviek, ale zároveň predĺži oneskorenie o 5 ms.
max.request.sizeint1028576StrednáMaximálny požadovaný počet bajtov. Toto je tiež efektívne pokrytie pre maximálnu zaznamenanú veľkosť. Poznámka: Server má vlastné prepísanie veľkosti záznamov správ, ktoré sa líšia od tohto nastavenia. Toto nastavenie obmedzuje počet požiadaviek, ktoré môžu producenti naraz posielať hromadne, aby sa zabránilo veľkému počtu žiadostí.
receive.buffer.bytesint32768StrednáVeľkosť TCP prijímacej cache, ktorá sa používa pri čítaní dát
send.buffer.bytesint131072StrednáVeľkosť cache TCP odosielania, ktorá sa používa pri odosielaní dát
timeout.msint30000StrednáTáto konfiguračná možnosť riadi maximálny čas, počas ktorého server čaká na potvrdenie od sledovateľov. Ak počet potvrdených požiadaviek nie je splnený v tomto čase, zobrazí sa chyba. Tento časový limit sa meria na strane servera a nemá sieťovú latenciu vrátane požiadaviek
block.on.buffer.fullBooleantruenízkeKeď nám dôjde pamäťová vyrovnávacia pamäť, musíme prestať prijímať nové záznamy správ alebo vyhodiť chyby. Predvolene je to nastavené na true, avšak niektoré blokovanie nemusí byť očakávané, takže je lepšie hneď hodiť chybu. Toto je prípad, keď je nastavený na false: producent vyhodí chybu výnimky: BufferExhaustedException, ak bol záznam odoslaný a cache je plná
metadata.fetch.timeout.msdlhý60000nízkeOznačuje údaje o prvom čase niektorých prvkov, ktoré sme získali. Prvky zahŕňajú: tému, hostiteľa, partementy. Táto konfigurácia označuje čas potrebný na úspešné dokončenie prvku podľa fetch, inak bude klientovi zaslaná výnimka.
metadata.max.age.msdlhý300000nízkeČas v mikrosekundách je interval, v ktorom nútime aktualizáciu metadát. Aj keď neuvidíme žiadne zmeny vo vedení rozdelenia.
metric.reportersZoznam[]nízkeZoznam tried používaných na meranie metrík. Implementácia rozhrania MetricReporter umožní pridávať triedy, ktoré sa menia pri generovaní nových metrík. JMXReporter vždy bude obsahovať spôsob registrácie štatistík JMX
metrics.num.samplesint2nízkePočet vzoriek použitých na udržiavanie metrík
metrics.sample.window.msdlhý30000nízkeSystém Metrics udržiava konfigurovateľný počet vzoriek v korekčnej veľkosti okna. Táto konfigurácia napríklad konfiguruje veľkosť okna. Môžeme uchovávať dve vzorky počas 30 sekúnd. Keď sa okno vysunie, vymažeme a prepíšeme najstaršie okno
recoonect.backoff.msdlhý10nízkeKeď spojenie zlyhá, čas čakania pri opätovnom pripojení. Tým sa predchádza opakovaným opätovným pripojeniam klientov
retry.backoff.msdlhý100nízkeČakacia doba pred opätovným pokusom o neúspešnú žiadosť o ovocie a zeleninu. Vyhnite sa uviaznutiu v mŕtvej slučke odosielania a neúspechu.




Predchádzajúci:【Practice】Eclipse installs the lombok plugin
Budúci:Java JMX je jednoduchý na pochopenie a používanie
 Prenajímateľ| Zverejnené 2. 11. 2021 14:10:57 |
konfigurácia server.properties

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com