Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 10630|Válasz: 1

Részletes magyarázat a Kafka konfigurációs paraméterekről

[Linket másol]
Közzétéve 2021. 06. 24. 11:47:12 | | |
Broker Configs

TulajdonAlapértelmezettLeírás
broker.id Minden bróker egyedi, nem negatív egész számazonosítóval azonosítható; Ez az azonosító használható a bróker "neveként", és létezése lehetővé teszi a bróker számára, hogy a felhasználók összezavarása nélkül átmigráljon egy másik hosztra/portra. Bármilyen számot választhatsz azonosítóként, amennyiben az egyedi azonosító.
log.dirs/tmp/kafka-logsAz út, ahol a Kafka adatokat tárol. Ez az út nem egyedi, lehet többszörös, és az utakat csak vesszóval kell elválasztani; Amikor új partíciót hoznak létre, azt az út alatt választják, amely a legkevesebb partíciót tartalmazza.
Kikötő6667A szerver elfogadja azt a portot, amelyhez a kliens csatlakozik
zookeeper.connectnullaA ZooKeeper kapcsolati lánc formátuma: hostname:port, ahol a hostname és port a ZooKeeper klaszterben lévő csomópont hosztoda és portja. Ahhoz, hogy csatlakozzon más ZooKeeper csomópontokhoz, amikor egy host leáll, több haszt is létrehozhatsz az alábbiak szerint:
hostname1:port1, hostname2:port2, hostname3:port3.

A ZooKeeper lehetővé teszi, hogy hozzáadj egy "chroot" útvonalat, hogy az összes kafka adatot a klaszterben egy adott út alatt tárold. Ha több Kafka klaszter vagy más alkalmazás ugyanazt a ZooKeeper klasztert használja, ezzel a módszerrel beállíthatod az adattároló útvonalat. Ez megvalósítható úgy, hogy a kapcsolati láncsort így formázzuk:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
Ez a beállítás az összes kafka klaszteradatot a /chroot/path útvonal alatt tárolja. Fontos megjegyezni, hogy a bróker indítása előtt létre kell hoznod ezt az útvonalat, és a fogyasztóknak ugyanazt a kapcsolati formátumot kell használniuk.
message.max.bájt1000000Az üzenetek maximális mérete, amit egy szerver fogadhat. Fontos, hogy a fogyasztó és a gyártó beállításait ezzel a tulajdonsággal kapcsolatban szinkronizálják, különben a gyártó által közzétett üzenet túl nagy lesz a fogyasztó számára.
num.network.threads3A szerver által használt hálózati szálak száma a hálózati kérések feldolgozására; Általában nem kell megváltoztatnod ezt az ingatlant.
num.io.threads8A szerver által a kérések feldolgozásához használt I/O szálak száma; A szálak számának legalább annyinak kell lennie, mint a merevlemezek száma.
background.threads4A háttérfeldolgozáshoz, például fájltörléshez használt szálak; Nem kell megváltoztatnod ezt a tulajdonságot.
queued.max.requests500A maximális kérések száma, amelyeket egy I/O szál feldolgozásához sorba kell állítani, mielőtt egy hálózati szál abbahagyná az új kérések olvasását.
host.namenullaa bróker gépneve; Ha a hosztnév már be van állítva, a bróker csak ehhez a címhez lesz kötve; Ha nincs beállítás, minden interfészhez kötődik, és egy példányt publikál a ZK-nak
advertised.host.namenullaHa beállított, akkor a bróker hostneveként elküldik a producernek, fogyasztóknak és más közvetítőknek
advertised.portnullaEzt a portot termelőknek, fogyasztóknak és más közvetítőknek adják, és kapcsolat kialakítására használják; Csak akkor kell beállítani, ha a tényleges port és a szervernek kötendő portja eltér.
socket.send.buffer.bytes100 * 1024SO_SNDBUFF Cache méret, amelyet a szerver használ socket-kapcsolatok létrehozásához
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF cache méret, amelyet a szerver használ socketekhez való csatlakozásra
socket.request.max.bájt100 * 1024 * 1024A szerver által engedélyezett maximális kérésméret;  Ez elkerüli a szervertúlcsordulásokat, amelyek kisebbek lehetnek, mint a Java halom mérete
num.partitions1Ha a téma létrehozásakor nem megadják a partíciók számát, akkor ez lesz a téma alapértelmezett partícióinak száma.
log.segment.bytes1014*1024*1024A témaosztó naplói sok fájlban tárolódnak egy adott könyvtárban, amely a partíció naplóit szegmensekre osztja; Ez az attribútum minden fájl maximális mérete; Amikor a dimenziók elérik ezt az értéket, új fájl jön létre. Ezt a beállítást felülírhatja az egyes témakör alapjai.
Kilátás  A hiperlink bejelentkezés látható.
log.roll.hours24 * 7Még ha a fájl nem is éri el a log.segment.bytes-t, új fájl keletkezik, amikor a fájlkészítési idő eléri ezt a tulajdonságot. Ezt a beállítást témaszintű beállítások is felülírhatják;
NézetA hiperlink bejelentkezés látható.
log.cleanup.policyTörlés
log.retention.minutes és log.retention.hours7 napAz az idő, amikor minden naplófájlt elmentettek, mielőtt törölték volna. Az alapértelmezett adatmegtakarítási idő minden témánál ugyanaz.
a log.retention.minutes és a log.retention.bytes is a naplófájlok törlésének beállítására szolgál, függetlenül attól, melyik tulajdonságot túlcsordulták.
Ez a tulajdonság beállítás felülírható, ha a téma gyakorlatilag be van állítva.
NézetA hiperlink bejelentkezés látható.
log.retention.bytes-1Az egyes fektívák által elmentett összes adatmennyiség minden témában; Fontos megjegyezni, hogy ez a felső határ egy partíciónként, tehát ezt a számot a partíciók számával megszorozva a témánként tárolt összes adatmennyiség. Továbbá megjegyzés: Ha mind a log.retention.hours, mind a log.retention.bytes be van állítva, ha bármelyik határt túllépik, egy szegmensfájl törlését eredményezi.
Fontos megjegyezni, hogy ezt a beállítást minden téma felülírhatja.
NézetA hiperlink bejelentkezés látható.
log.retention.check.interval.ms5 percEllenőrizze a naplószegmentált fájlok közötti intervallumot, hogy megállapítsa, megfelelnek-e a fájl attribútumok a törlési követelményeknek.
log.cleaner.enablefalseHa ezt a tulajdonságot hamisnak állítják, törlik, amikor a naplót maximális ideig vagy méretben tárolják. Ha igazra állítva állítják, akkor történik, amikor a mentési attribútum eléri a felső határtA hiperlink bejelentkezés látható.
log.cleaner.threads1A log tömörítést végző szálak száma
log.cleaner.io.max.bytes.per.másodpercEgyik semA naplótisztító maximális I/O-száma, amit egy naplótömörítés során megtehet. Ez a beállítás korlátozza a tisztítót, hogy ne zavarja az aktív kérési szolgáltatásokat.
log.cleaner.io.buffer.size500*1024*1024A Log Cleaner indexeli a naplókat a tisztítás során, és csökkenti a használt gyorsítótár méretét. A legjobb, ha nagyra állítod, hogy elegendő memóriát biztosítson.
log.cleaner.io.buffer.load.factor512*1024Az I/O darab mérete, amely a fatörzs tisztításához szükséges. Nem kell ezt a beállítást megváltoztatnod.
log.cleaner.io.buffer.load.factor0.9a naplótisztításnál használt hash tábla terhelési tényezője; Ezt az opciót nem kell megváltoztatnod.
log.cleaner.backoff.ms15000Az időintervallum, amely alatt a naplót megtisztítják, elvégezzük
log.cleaner.min.cleanable.ratio0.5Ez a konfiguráció szabályozza, hogy a rönnyalapító milyen gyakran próbálja megtisztítani a rönköket (feltételezettA hiperlink bejelentkezés látható.nyitva van). Alapértelmezés szerint kerüld a rönkök több mint 50%-át takarítani. Ez az arány a tartalék napló maximális elfoglalt helyéhez kötött (a naplók 50%-a 50%-ban tömörödik). A magasabb árfolyam kevesebb hulladékot és hatékonyabban takaríthat ki több helyet. Ez a beállítás felülírható minden témakörnyezetben.
NézetA hiperlink bejelentkezés látható.
log.cleaner.delete.retention.ms1 naptárolási idő; A maximális idő a tömörített naplók tárolására; Ez egyben a kliens maximális ideje az üzenetek fogyasztására, és a log.retention.minutes közötti különbség az, hogy az egyik a tömörítetlen adatokat, a másik pedig a tömörített adatokat irányítja, amelyet a téma létrehozásakor megadott idő felülír.
log.index.size.max.bájt10*1024*1024A maximális méret egy log szegmensre. Fontos megjegyezni, hogy ha a naplóméret eléri ezt az értéket, akkor új log szegmensre van szükség, még akkor is, ha a méret nem haladja meg a log.segment.bytes korlátot.
log.index.interval.bytes4096Fetch végrehajtáskor a legközelebbi eltolódást kell beszkennelni egy bizonyos helygel, minél nagyobb a beállítás, annál jobb, általában használd az alapértelmezett értéket
log.flush.interval.messagesLong.MaxValueNaplófájlt "szinkronizáljanak" a lemezlel, mielőtt üzeneteket halmoztak volna fel. Mivel a lemez IO műveletek lassúak, de egyben az "adatmegbízhatóság" szükségessége is, ellenőrizd, szükséges-e a merevlemezre való kötés időintervallum. Ha ez az érték túl nagy, túl hosszú "szinkron" időt (IO blokkol) eredményez, ha túl kicsi, hosszú ideig "fsync" (IO blokkoláshoz), ha ez az érték túl kicsi, akkor sok "szinkron" időpontot eredményez, ami azt jelenti, hogy az összes kliens kérésnek van egy bizonyos késleltetése, és a fizikai szerver meghibásodása üzenetek elvesztéséhez vezet fsync nélkül.
log.flush.scheduler.interval.msLong.MaxValueEllenőrizd, szükséges-e fsync intervallumok
log.flush.interval.msLong.MaxValueEzt a számot használják a "fsync" időintervallumának szabályozására, ha az üzenetek száma soha nem éri el a lemezre szilárdult üzenetek számát, de az utolsó lemezszinkronizáció időintervalla eléri a küszöböt, akkor a lemezszinkronizáció is elindul.
log.delete.delay.ms60000A fájl törlése utáni tárolási időt általában nem szükséges módosítani
auto.create.topics.enabletrueHogy engedélyezzék-e automatikusan témák létrehozását. Ha igaz, automatikusan létrehoz egy olyan témát, amely nem létezik, amikor a produce vagy fetch nem létezik. Ellenkező esetben a parancssorral kell létrehoznod egy témát
controller.socket.timeout.ms30000A socket időkilépési ideje, amikor a partíciókezelő vezérlő biztonsági mentést végez.
controller.message.queue.sizeInt.MaxValuecontroller-to-broker-channles
default.replication.factor1A biztonsági mentések alapértelmezett száma csak automatikusan létrehozott témákra vonatkozik
replica.lag.time.max.ms10000Ha egy követő ebben az időben nem küld behozási kérést, a vezető visszaveszi a követőt az ISR-ből, és felakasztottnak tekinti a követőt
replica.lag.max.messages4000Ha egy másolatban ennél több van a lezárt számú felerősített, a vezető eltávolítja a követőt, és felakasztottnak tekinti a követőt
replica.socket.timeout.ms30*1000Leader időlevonási idő socket hálózati kérésekhez adatmentéskor
replica.socket.receive.buffer.bytes64*1024Socket fogadó puffer, amikor hálózati kérést küldenek a vezetőnek mentés közben
replica.fetch.max.bájt1024*1024Az egyes lehívások maximális értéke a mentés idején
replica.fetch.min.bytes500A maximális várakozási idő, amíg az adat eléri a vezetőt, amikor a vezető biztonsági mentést kér
replica.fetch.min.bytes1A válasz legkisebb mérete minden lehajtás után visszamentéskor
num.replica.fetchers1A szálak száma, amelyek az adatokat a vezetőtől tartják vissza
replica.high.watermark.checkpoint.interval.ms5000Minden másolat ellenőrzi, hogy milyen gyakran származik meg a legmagasabb vízszint
fetch.purgatory.purge.interval.requests1000Fetch kéri a tisztítási intervallumot
producer.purgatory.purge.interval.requests1000A producer törlési intervallumot kér
zookeeper.session.timeout.ms6000Állatkerti munkaidő.
zookeeper.connection.timeout.ms6000Az a maximális idő, amíg az ügyfél kapcsolatot teremt a zookeeperrel
zookeeper.sync.time.ms2000A zk követője a leghosszabb ideig lemarad a ZK vezetőtől
controlled.shutdown.enabletrueLehetséges-e ellenőrizni a bróker zárását. Ha lehetséges, a bróker minden vezetőt áthelyezhet más brókerekhez a zárás előtt. Ez csökkenti a leállás során elérhetetlen állapotot.
controlled.shutdown.max.ismétlések3Azok a parancsok száma, amelyek sikeresen végrehajthatják a leállítást a befejezetlen leállítás előtt.
controlled.shutdown.retry.backoff.ms5000Visszalépési idő a leállások között
auto.leader.rebalance.enabletrueHa ez igaz, a vezérlő automatikusan egyensúlyba hozza a brókerek vezetését a partíciók felett
leader.egyenletlenség.bróker-százalék10Az egyes brókerek által engedélyezett maximális egyensúlyhiányarány
leader.inbalance.check.interval.seconds300Ellenőrizd a vezető egyensúlyhiány gyakoriságát
offset.metadata.max.bájt4096Lehetővé teszi az ügyfelek számára, hogy a maximális szám elmentsék az offsetjüket
max.connections.per.ipInt.MaxValueMinden IP-címhez a maximális kapcsolat száma lehet egy brókerenként
max.connections.per.ip.overrides Az alapértelmezett kapcsolat maximális lefedettsége IP-nként vagy hosztnévenként
connections.max.idle.ms600000Időkorlát üres kapcsolatok esetén
log.roll.jitter. {ms,hours}0A logRollTimeMillisből absztrakció alatt elvont maximális remegés száma
num.recovery.threads.per.data.dir1Hány szálat használ minden adatkönyvtár a helyreállítás naplózására
unclean.leader.election.enabletrueJelzi, hogy lehetséges-e használni az ISR-ben a nem-replikák beállítást vezetőként
delete.topic.enablefalseKépes törölni témákat
offsets.topic.num.partitions50Az offset commit téma partícióinak száma. Mivel a telepítés utáni változtatás jelenleg nem támogatott, javasoljuk, hogy magasabb beállítást használjunk a termeléshez (pl. 100-200).
offsets.topic.retention.minutes1440Azok az elvonások, amelyek hosszabb ideig léteznek ezen az időkorlátnál, törlésre várónak lesznek jelölve
offsets.retention.check.interval.ms600000Az offset menedzser ellenőrzi az elavult eltolások gyakoriságát
offsets.topic.replication.factor3A témák eloltásának tartalék másolatainak száma. Ajánlott magasabb számokat állítani, hogy garantáljuk a magasabb elérhetőséget
offset.topic.segment.bytes104857600Eltérít témát.
offsets.load.buffer.size5242880Ez a beállítás a kötet méretéhez kapcsolódik, és az offsets szegmensből olvasáskor használatos.
offsets.commit.required.acks-1A megerősítések számát be kell állítani, mielőtt az offset commit elfogadható legyen, és általában nem kell változtatni


TulajdonAlapértelmezettSzerver alapértelmezett tulajdonságaLeírás
Cleanup.policyTörléslog.cleanup.policyVagy "delete", vagy "compact"; Ez a sorozat megmutatja, hogyan lehet használni a régi napló részt; Az alapértelmezett módszer ("törlés") akkor dobja el a régi alkatrészt, amikor elérik az újrahasznosítási időt vagy mérethatárt. "kompakt" összenyomja a rönkeket
delete.retention.ms86400000 (24 órán)log.cleaner.delete.retention.msA log.retention.minutes közötti különbség az, hogy az egyik a tömörítetlen adatokat irányítja, a másik pedig tömörített adatokat. Ezt a konfigurációt felülírhatják a rögzítési paraméterek a téma létrehozásakor
flush.messagesEgyik semlog.flush.interval.messagesEz a konfiguráció időintervallumot határoz meg az fsync naplók kényszerítésére. Például, ha ez az opció 1-re van állítva, akkor minden üzenet után fsync szükséges, ha 5-re állítva, akkor minden 5 üzenethez fsync szükséges. Általánosságban ajánlott, hogy ne állítsd be ezt az értéket. Ennek a paraméternek a beállításához szükséges kompromisszum szükséges az "adatmegbízhatóság" és a "teljesítmény" között. Ha ez az érték túl nagy, minden alkalommal hosszú ideig "fsync" (IO blokkolás), és ha ez az érték túl kicsi, akkor nagy számú "fsync"-hez vezet, ami azt is jelenti, hogy az ügyfélkérés egészében bizonyos késleltetés van. Fizikai szerverhiba esetén az üzenetek elvesznek fsync nélkül.
flush.msEgyik semlog.flush.interval.msEzt a konfigurációt használják arra, hogy rögzítsék az időintervallumot a fsync naplók kényszerítése között a lemezre; Például, ha 1000-re állítva van, akkor fsync minden 1000 ms-enként szükséges. Ez a lehetőség általában nem ajánlott
index.interval.bytes4096log.index.interval.bytesAz alapértelmezett beállítás biztosítja, hogy 4096 bájtonként indexet adjunk az üzenethez, és több index közelebb hozza az olvasott üzenetet, de az index mérete nő. Ez az opció általában nem kötelező
max.message.bytes1000000max.message.bytesA kafka append üzenet maximális mérete. Fontos megjegyezni, hogy ha ezt a méretet növeled, akkor a fogyasztó behozó méretét is növelned kell, hogy a fogyasztó üzeneteket a maximális méretre tudja hozni.
min.tisztítható.piszkos.arány0.5min.tisztítható.piszkos.arányEz a konfiguráció szabályozza, hogy a log kompresszor milyen gyakran próbálja eltávolítani a rönkeket. Alapértelmezés szerint elkerüljük azokat a naplókat, amelyek tömörítési rátája több mint 50%-os. Ez az arány elkerüli a legnagyobb helypazarlást
min.insync.replicas1min.insync.replicasAmikor a producer request.required.acks -1-re van állítva, a min.insync.replicas megadja a minimális replikák számát (minden repica írásnak sikeresnek kell lennie), és ha ezt a számot nem érik el, a producer kivételt hoz létre.
retention.bytesEgyik semlog.retention.bytesHa a "törlés" megőrzési szabályzatot használod, ez a konfiguráció arra a maximális méretre utal, amit a napló elérhet, mielőtt töröljük. Alapértelmezés szerint nincs méretkorlát, csak időkorlát
retention.ms7 naplog.retention.minutesHa a "törlés" megőrzési szabályzatot használod, ez a konfiguráció arra az időre utal, amikor a naplót a törlési napló előtt mentették el.
segment.bytes1GBlog.segment.bytesA Kafkában a naplók darabokban vannak tárolva, és ez a konfiguráció a log logok darabokra osztott méretére utal
segment.index.bytes10MBlog.index.size.max.bájtEz a konfiguráció nagyjából akkora, mint az indexfájl, amelyet az eltérések és a fájl helyek között képeznek le; Ezt a konfigurációt általában nem kell módosítani
segment.ms7 naplog.roll.hoursMég ha a log chunk fájl nem is éri el a törlésre vagy tömörítésre szükséges méretet, amikor a naplóidő eléri ezt a felső határt, új log chunk fájlt kényszerítenek
segment.jitter.ms0 log.roll.jitter. {ms,hours}A maximális jitter, amit le kell vonni a logRollTimeMillisből.


Fogyasztói konfigurációk

TulajdonAlapértelmezettLeírás
group.id Egy string, amely egyedien azonosítja azt a csoportot, amelyben a fogyasztói folyamat található, és ha ugyanaz a csoportazonosító van beállítva, akkor ezek a folyamatok ugyanahhoz a fogyasztói csoporthoz tartoznak
zookeeper.connect Határozd meg a Zookeeper kapcsolat stringjét, a formátum: hostname:port, itt a host és port mind a Zookeeper szerver hoszteve, mind portja, hogy elkerülje a kapcsolat elvesztését, miután egy Zookeeper gép leáll, több hostname:port megadhat, vesszővel elkülönítve:
hostname1:port1,hostname2:port2,hostname3:port3
Hozzáadhatod a ZooKeeper chroot útvonalát a ZooKeeper kapcsolati láncsorhoz, amely saját adatai tárolására szolgál, így működik:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
consumer.idnullaNem szükséges beállítás, általában automatikusan generálódik
socket.timeout.ms30*100Időtúllépési korlátok hálózati kérésekhez. A valódi időtúllépési határ max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes64*1024socket a hálózati kérések gyorsítótár méretének fogadására szolgál
fetch.message.max.bájtok1024*1024A maximális bájtszám egy betöltési üzenetenként, egy betöltési kérésenként. Ezeket a bájtokat a partíciókhoz használt memóriában felügyeljük, így ez a beállítás szabályozza, hogy a fogyasztó mennyi memória használ. A bekeresési kérelmek méretének legalább annyinak kell lennie, mint a szerver által engedélyezett maximális üzenetméret, különben a gyártó által küldött üzenet mérete nagyobb, mint amit a fogyasztó fogyasztani tud.
num.consumer.fetchers1A fetcher szálak száma, amelyeket a fetch adathoz használnak
auto.commit.enabletrueHa igaz, a fogyasztó által beérkezett üzenet eloszlása automatikusan szinkronizálódik az állatkerti gondossal. Ezt a commit offsetet az új felhasználó fogja használni, amikor a folyamat leáll
auto.commit.interval.ms60*1000Az a gyakoriság, amellyel a fogyasztó az állatkerti gondosnak továbbítja az offsetet, másodpercekben van
queued.max.message.chunks2A maximális számú üzenet, amelyet a gyorsítótárhoz használnak. Minden darabnak ugyanaznak kell lennie, mint a fetch.message.max.bájtnak
rebalance.max.ismétlések4Amikor új fogyasztót adnak egy fogyasztói csoportba, a fogyasztók gyűjteménye megpróbálja újrakiegyenlíteni az egyes fogyasztók számára kijelölt partíciók számát. Ha a fogyasztói gyűjtemény megváltozik, ez az újraegyensúlyozás meghibásodik, és újra átrepencifikál, amikor az allokáció végrehajtódik
fetch.min.bytes1A szervernek minden behíváshoz vissza kell térnie a minimális bájtszám. Ha nem érkezik elegendő adat, a kérés vár, amíg elegendő adat érkezik.
fetch.wait.max.ms100Ha nincs elegendő adat a fetch.min.bytes kielégítéséhez, ez a konfiguráció azt jelenti, hogy a szerver legfeljebb blokkolja a fetch kérésre való válasz előtt.
rebalance.backoff.ms2000Visszalépés ideje a Reblance újrapróbálkozása előtt
refresh.leader.backoff.ms200Van egy visszalépési idő, hogy várj, mielőtt megpróbálják megállapítani, hogy egy felosztás vezetője elvesztette-e a vezetőségét
auto.offset.resetlegnagyobbHa a zookeeperben nincs inicializált eltolás, ha az eltolás a következő értékre adott válasz:
Legkisebb: Automatikus visszaállító eltérés a legkisebb eltérésre
legnagyobb: Automatikus visszaállítás a legnagyobb eltolódásra
bármi más: kivételt dob a fogyasztóra
consumer.timeout.ms-1Ha nincs elérhető üzenet, még egy adott idő után is, időtúlzási kivétel kerül
exclude.internal.topicstrueHogy belső témákból érkező üzeneteket mutassanak-e a fogyasztóknak
paritition.assignment.strategyTerjedelmekVálaszd ki a fogyasztói áramláshoz tartozó partíciók hozzárendelésére vonatkozó szabályzatot, opcionálisan tartományt, roundrobint
client.idCsoportazonosító értékegy felhasználóspecifikus string, amely segít nyomon követni a hívásokat minden kérésben. Logikusan meg kell erősítenie azt az alkalmazást, amely a kérést generálta
zookeeper.session.timeout.ms6000Időkorlátok az állatkerti foglalkozások esetén. Ha a fogyasztó ebben az időszakban nem küld szívverési üzenetet az állatkertésznek, azt letévesztettnek tekintik, és egy visszajelzés keletkezik
zookeeper.connection.timeout.ms6000A maximális várakozási idő, amíg egy ügyfél létrehozza az állatkerti kapcsolatot
zookeeper.sync.time.ms2000A ZK követői maximum ideig lemaradhatnak a ZK vezetőtől
offsets.storageÁllatkertészHelyek, ahol elfoglaltak: állatkertész vagy kafka
offset.channel.backoff.ms1000Az offsets csatorna újracsatlakozásának vagy a sikertelen offset lekérésének újrapróbálásának visszalépési ideje
offsets.channel.socket.timeout.ms10000A socket időtúli korlátja a fetch/commit request válaszra adott válaszhoz az offset olvasásakor. Ezt az időtúllépést a consumerMetadata kérés használja az offset kezelés kérésére
offsets.commit.max.újrapróbálkozások5Az offset elköteleződés újrapróbálkozásának száma. Ez az újrapróbálás csak a leállítás közötti offset commit-ekre vonatkozik. őt
dual.commit.enabledtrueHa a "kafka"-t offset.storage-ként használod, kétszer is elkötelezheted az offsetet a zookeepernek (és egyszer a kafka-hoz). Ez elengedhetetlen, amikor állatkerti alapú offset tárolásról kafka-alapú offset tárolásra váltunk. Bármely fogyasztói csoport számára biztonságos ajánlott ezt az opciót kikapcsolni, amikor a migráció befejeződött
partition.assignment.strategyTerjedelmekVálassz a "tartomány" és a "roundrobin" politikák között a fogyasztói adatfolyamokhoz való partíciók hozzárendeléséhez; A körkörös partíciós allokátor minden elérhető partíciót, valamint minden elérhető fogyasztói szálat is kioszt. A partíciós hurkot a fogyasztói szálhoz rendeli. Ha minden fogyasztói példány egy meghatározott példányhoz van kötve, a partíciók determinisztikus eloszlásokra vannak osztva. A körös elosztási stratégia csak akkor lehetséges, ha a következő feltételek teljesülnek: (1) Minden téma ugyanannyi adatfolyamot tartalmaz fogyasztói erősségre jutva. (2) Az előrendelt témák gyűjteményét minden fogyasztói példány esetében a fogyasztói csoportban határozzák meg.


Producer konfigurációk

TulajdonAlapértelmezettLeírás
metadata.broker.list Bootstrapping szolgálata. A producer csak metaadatok (topicok, partíciók, replikák) megszerzésére szolgál. A socket-kapcsolat az adatok tényleges küldéséhez a visszaküldött metaadat alapján jön létre. A formátum a következő:
host1:port1,host2:port2
Ez a lista lehet egy allista brókerekről, vagy egy VIP a brókerekre mutat
request.required.acks0Ez a konfiguráció egy visszaigazolási érték, amely jelzi, mikor tekintenek egy producerek kérését teljesnek. Különösen az, hogy hány más bróker adta be az adatokat a naplóiba, és megerősítette ezt a vezetőjüknek. Tipikus értékek a következők:
0: Azt jelzi, hogy a producer soha nem vár a brókertől érkező megerősítésre (ugyanaz a viselkedés, mint a 0.7). Ez az opció a legkisebb késleltetést nyújtja, de ugyanakkor a legnagyobb kockázatot is (mert az adatok elvesznek, amikor a szerver leáll).
1: Jelzi, hogy a vezető replika megkapta az adat megerősítését. Ez az opció alacsony késleltetéssel rendelkezik, és biztosítja, hogy a szerver megerősítse, hogy megérkezett.
-1: A gyártó megerősítést kap, hogy minden szinkronizált replika megkapta az adatokat. A késleltetés a legnagyobb, azonban ez a módszer nem szünteti meg teljesen az üzenetek elvesztésének kockázatát, mivel a szinkronizált replikák száma akár 1 lehet. Ha biztosítani szeretnéd, hogy egyes replikák adatokat kapjanak, akkor a témaszintű beállításokban be kell állítanod a min.insync.replicas opciót. Olvasd el a tervezési dokumentációt a mélyebb vitához.
request.timeout.ms10000A bróker igyekszik a request.required.acks követelményt megvalósítani, különben hiba érkezik az ügyfélnek
producer.typeSyncEz az opció kitűzi, hogy az üzenet aszinkron módon érkezik-e háttérszálban. Helyes értékek:
(1) aszinkron: Aszinkron küldés
(2) szinkron: Szinkronizált küldés
Ha a producert aszinkronra állítjuk, csomagokban tudjuk feldolgozni a kéréseket (ami jó a nagyobb áteresztőképesség érdekében), de ez azt is feljelenti, hogy a kliens gép elveszíti az elküldött adatokat
serializer.classkafka.serializer.DefaultEncoderAz üzenet serializációs kategóriája. Az alapértelmezett kódoló egy bájtot ír[] és ugyanazt a bájtot[] adja vissza[]
key.serializer.class Serializációs osztály kulcsszavakhoz. Ha ez nem van megadva, az alapértelmezett az üzenet egyezése
partitioner.classkafka.producer.DefaultPartitionerPartitioner class, amely az üzeneteket altémák között osztja. Az alapértelmezett partíciós rendszer a kulcs hash tábláján alapul
compression.codecegyik semEz a paraméter beállíthatja az adatok tömörítésére szolgáló kódeket, amely "none", "gzip", "snappy" módokat választhat.
Compressed.topicsnullaEz a paraméter arra is beállíthatja, hogy bizonyos témák tömörítettek-e. Ha a tömörített kódek nem a NoCompressCodec, akkor ezeket a kodekeket a megadott témaadatokra alkalmazzák. Ha a tömörített témák listája üres, alkalmazzuk a konkrét tömörített kódeket minden témára. Ha a tömörített kódek NoCompressionCodec, akkor a tömörítés nem minden témában elérhető.
message.send.max.ismétlések3Ez a paraméter automatikusan újra próbálja a sikertelen küldési kérelmeket. Ez a paraméter kitűzi a próbálkozások számát. Megjegyzés: Ha nem 0 értéket állítunk, bizonyos hálózati hibák ismétlődnek: küldést és visszaigazolás elvesztését okoznak
retry.backoff.ms100Minden újrapróbálkozás előtt a producer frissíti a releváns téma metaadatait, hogy lássa, az új vezető van-e kijelölve. Mivel a vezető kiválasztása kevés időt vesz igénybe, ez az opció meghatározza, mennyi időt kell várnia a termelőnek a metaadatok frissítéséhez.
topic.metadata.refresh.interval.ms600*1000A producer általában frissíti a téma metaadatait bizonyos hiba esetén (partíció hiányzik, vezető nem elérhető stb.). Rendszeres cikluson megy keresztül. Ha negatív értékre állítod, a metaadat csak akkor frissül, ha meghibásodik. Ha 0-ra állítva, a metaadat minden üzenet elküldése után frissül (ez a lehetőség nem ajánlott, a rendszer túl sokat fogyaszt). Fontos: A frissítések csak az üzenet elküldése után történnek, tehát ha a gyártó soha nem küldi el az üzenetet, a metaadat soha nem frissül.
queue.buffering.max.ms5000Az a maximális időintervallum, amikor a felhasználó adatokat gyorsítótároz, amikor asszinkron módot alkalmaznak. Például, ha az üzenet 100-ra van állítva, a 100 ms-en belüli üzeneteket csomagokban dolgozzák fel. Ez javítja az áteresztőképességet, de növeli a késleltetést a gyorsítótározás miatt.
queue.buffering.max.üzenetek10000Aszinkron mód használatában a gyártó előtt a sorba gyorsatároló maximális el nem küldött üzenetek számát kell blokkolni, vagy adatokat kell elveszíteni
batch.num.messages200Aszinkron módban a maximális számú üzenetet lehet csomagosan feldolgozni. Vagy az üzenetek száma érkezett ide online, vagy queue.buffer.max.ms megérkezett, és a producer feldolgozza azokat
send.buffer.bytes100*1024socket írási cache mérete
client.id“”Ez az ügyfélazonosító egy felhasználóspecifikus string, amely minden kéréshez csatlakozik a hívás nyomon követéséhez, és logikusan tudnia kell megerősítenie, hogy az alkalmazás kérelmezett-e.


Producer konfigurációk

NévTípusAlapértelmezettJelentőségLeírás
boostrap.serversLista MagasA host/port csoport, hogy kapcsolatot teremtsen a kafka klaszterrel. Az adatok egyenletesen töltődnek be minden szerveren, függetlenül attól, melyik szerver van kijelölve bootstrappingre. Ez a lista csak az inicializált hosztokat érinti (amelyeket minden szerver felderítésére használnak). Ez a lista formátuma:
host1:port1,host2:port2,...
Mivel ezeket a szervereket csak a kapcsolatok inicializálására használják, hogy felfedezzék a klaszter összes tagságát (amelyek dinamikusan változhatnak), ennek a listának nem kell minden szervert tartalmaznia (lehet, hogy több szervert is szeretnél, bár ebben az esetben egy szerver leállhat). Ha nincs szerver ebben a listában, az adatküldés kudarcot vall, amíg a lista nem elérhető.
ackshúr1MagasA gyártónak szüksége van egy jelre a szervertől, hogy visszaigazolja a fogadtatást az adatok megérkezése után, és ez a konfiguráció arra utal, hogy a prokudernek hány ilyen visszaigazolási jelre van szüksége. Ez a konfiguráció valójában az adatmentések elérhetőségét jelenti. Az alábbi beállítások gyakoriak a választások:
(1) acks=0: 0-ra állítva azt jelenti, hogy a gyártónak nem kell várnia a kapott információk megerősítésére. A másolatot azonnal hozzáadják a socket pufferhez, és elküldve tekintik. Ebben az esetben nincs garancia arra, hogy a szerver sikeresen megkapta az adatokat, és a konfiguráció újrapróbálása nem fog működni (mert a kliens nem tudja, hogy meghibásodott-e), így a visszacsatolás eltolása mindig -1-re lesz állítva.
(2) acks=1: Ez azt jelenti, hogy legalább várjuk meg, amíg a vezető sikeresen megírja az adatokat a helyi naplóba, de nem arra, hogy minden követő sikeresen írjon. Ebben az esetben, ha a követő nem sikeresen menti le az adatokat, és a vezető ismét leteszi a telefont, az üzenet elveszik.
(3) acks=all: Ez azt jelenti, hogy a vezetőnek várnia kell minden biztonsági mentésre, hogy sikeresen naplót írjon, és ez a stratégia biztosítja, hogy az adatok ne veszjenek el, amíg egy biztonsági mentés megmarad. Ez a legerősebb garancia.
(4) Más beállítások, például acks=2 is lehetségesek, amelyekhez meghatározott számú ack szükséges, de ezt a stratégiát általában ritkán használják.
buffer.memoryhosszú33554432MagasA producer segítségével gyorsabőrbe helyezhető az adatok memória mérete. Ha az adatok gyorsabban generálódnak, mint ahogy a brókernek küldik, a gyártó tiltja vagy elküld egy kivételt, amelyet "block.on.buffer.full" jelzéssel jelöl.

Ez a beállítás összefügg a gyártó által használt teljes memóriával, de nem szigorú korlát, mivel nem minden memóriát használ gyorsítótárhoz. Néhány további memória tömörítéshez (ha tömörítést vezetnek be), és egy részét karbantartási kérésekre.
compression.typehúregyik semMagasa producer az a tömörítési típus, amelyet az adatok tömörítésére használnak. Az alapértelmezett tömörítés nélküli. A helyes opcióértékek: nincs, gzip, snappy.
A tömörítést leginkább köteges feldolgozásra használják, minél több üzenetet dolgoznak fel adagokban, annál jobb a tömörítési teljesítmény.
Újrapróbálkozásokint0Magas0 feletti érték beállítása arra készteti az ügyfél, hogy az adatok meghibásodása után újra küldjön adatokat. Fontos megjegyezni, hogy ezek az újrapróbálkozások nem különböznek azoktól, amikor a kliens küldési hibát kap. Lehetővé teszi, hogy az újrapróbálkozások megváltoztassák az adatok sorrendjét, ha mindkét üzenet ugyanarra a partícióra kerül, az első üzenet megbukik, a második üzenet korábban jelenik meg, mint az első.
batch.sizeint16384KözepesA producer megpróbálja az üzenetrekordokat csoportosan megszerezni, hogy csökkentse a kérések számát. Ez javítja a teljesítményt a kliens és szerver között. Ez a konfiguráció szabályozza a kötött feldolgozó üzenetek alapértelmezett számát.
Nem próbálnak feldolgozni az üzenet bájtjait, amelyek nagyobbak ennél a bájtszámnál.
A brókereknek küldött kérések több tételt tartalmaznak, amelyek minden partícióhoz egy kérést tartalmaznak.
A kisebb köteges értékek ritkábban vannak, és csökkenthetik az áteresztőképességet (0 csak köteges feldolgozást használ). A nagyobb köteg értékek több memóriateret pazarolnak, ezért konkrét csomagértékekhez kell memóriát osztanod le.
client.idhúr KözepesEzt a stringet a szervernek küldik, amikor kérelmet tesznek. A cél az, hogy nyomon kövessék a kérések forrását, így egyes IP/port engedélyezett listán kívüli alkalmazások információt küldhessenek. Ez az alkalmazás bármilyen stringet tud beállítani, mert nincs funkcionális célja, csak a rögzítés és követés
linger.mshosszú0KözepesA producer csoport összegyűjti az üzeneteket, amelyek a kérés és a küldés között érkeznek, külön csomagot rögzítve. Ez általában csak akkor történik, ha a rekord gyorsabban generálódik, mint a küldési sebesség. Bizonyos feltételek mellett azonban az ügyfél csökkenteni akarja a kérések számát, vagy akár mérsékelt terhelést is. Ezt a beállítást egy kis késleltetéssel végzik – azaz a producer ahelyett, hogy azonnal elküldene egy rekordot, a producer megvárja egy adott késleltetési időt, hogy más üzenetrekordokat küldhessen, amelyeket be lehet kötni. Ez hasonló algoritmusnak tekinthető, mint a TCP Nagle. Ez a beállítás magasabb késleltetéshatárt állít fel a batching-hez: amint megkapjuk a partíció batch.size-ét, azonnal elküldi azt attól függetlenül, hogy ettől függetlenül elküldjük, de ha egy üzenetet kapunk, amelynek bájtszáma sokkal kisebb az adott beállításnál, akkor egy adott időt kell "elhúznunk", hogy több üzenetet kapjunk. Ez a beállítás alapértelmezettként 0-ra van, azaz nincs késleltetés. Például a linger.ms=5 beállítása csökkenti a kérések számát, ugyanakkor 5 ms-rel növeli a késleltetést.
max.request.sizeint1028576KözepesA kért maximális bájtszám. Ez hatékony lefedettség a maximális rögzített méret esetén is. Megjegyzés: A szervernek saját üzenetrekordméretek felülírása van, amelyek eltérnek ettől a beállítástól. Ez a beállítás korlátozza, hogy a producerek egyszerre tömegesen küldhetnek kéréseket, hogy elkerülje a nagy számú kérést.
receive.buffer.bytesint32768KözepesTCP receptioncache mérete, amelyet adatolvasáskor használnak
send.buffer.bytesint131072KözepesTCP küldési gyorsítótár mérete, amelyet adatküldéskor használnak
timeout.msint30000KözepesEz a konfigurációs opció szabályozza, mennyi ideig várja a szerver a követők megerősítését. Ha az adott időben nem teljesítik a megerősített kérések számát, hiba jelenik meg. Ezt az időtúllépési határt a szerver oldalon mõõdik, és nincs hálózati késleltetés, beleértve a kéréseket is.
block.on.buffer.fullBooleantruealacsonyAmikor a memória gyorsítótárunk lefogy, abba kell hagynunk új üzenetrekordok fogadását, vagy hibákat kell küldenünk. Alapértelmezés szerint ez igaz, de némi blokkolás nem feltétlenül éri meg számítani, ezért jobb azonnal hibát adni. Ez akkor fordul elő, ha hamisra állítva: a producer kivétel hibát dob: BufferExhaustedException, ha a rekordot elküldték és a gyorsítótár tele van
metadata.fetch.timeout.mshosszú60000alacsonyEz arra utal, hogy egyes elemekről először szereztünk adatokat. Az elemek közé tartozik: téma, hosztex, partíciók. Ez a konfiguráció arra az időre utal, amely az elem sikeres befejezéséhez szükséges a fetch szerint, különben kivételt küldenek a kliensnek.
metadata.max.age.mshosszú300000alacsonyAz idő mikroszekunduumokban az az időszak, amikor a metaadatokat frissítjük. Még ha nem is látunk választókerületi vezetőváltásokat.
metric.riporterekLista[]alacsonyEgy lista a metrikák mérésére használt osztályokról. A MetricReporter interfész megvalósítása lehetővé teszi olyan osztályok hozzáadását, amelyek új metrikák generálódásával változnak. A JmxReporter mindig tartalmaz egy módot a JMX statisztikák regisztrálására
metrics.num.samplesint2alacsonyA minták száma, amelyeket a mutatók fenntartására használnak
metrics.sample.window.mshosszú30000alacsonyA Metrikák rendszer konfigurálható számú mintát tart fenn egy javítható ablakméretben. Ez a konfiguráció például az ablakméretet konfigurálja. Két mintát is megőrizhetünk 30 másodperces időtartamra. Amikor egy ablakot kinyitottak, törlesztjük és újraírjuk a legrégebbi ablakot
recoonect.backoff.mshosszú10alacsonyHa a kapcsolat meghibásodik, a visszakapcsolódás várakozási ideje lesz. Ez elkerüli az ismétlődő kliens-újrakapcsolódásokat
retry.backoff.mshosszú100alacsonyA várakozási idő, mielőtt megpróbálnánk újrapróbálni egy sikertelen termelés kérést. Kerüld el, hogy elragadj egy "küldés-sikertelen" holtciklusba.




Előző:【Practice】Eclipse installs the lombok plugin
Következő:A Java JMX egyszerű megérthető és használható
 Háziúr| Közzétéve 2021. 11. 02. 14:10:57 |
server.properties konfiguráció

Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com