Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 10630|Atsakyti: 1

Išsamus Kafkos konfigūracijos parametrų paaiškinimas

[Kopijuoti nuorodą]
Paskelbta 2021-06-24 11:47:12 | | |
Brokerio konfigūracijos

Nekilnojamasis turtasNumatytasisApibūdinimas
broker.id Kiekvienas brokeris gali būti identifikuojamas naudojant unikalų neneigiamą sveikąjį skaičių; Šis ID gali būti naudojamas kaip brokerio "pavadinimas", o jo egzistavimas leidžia brokeriui pereiti į kitą pagrindinį kompiuterį / prievadą neklaidinant vartotojų. Galite pasirinkti bet kurį jums patinkantį numerį kaip ID, jei ID yra unikalus.
log.dirs/tmp/kafka-logsKelias, kuriame kafka saugo duomenis. Šis kelias nėra unikalus, jis gali būti keli, o kelius reikia atskirti tik kableliais; Kai sukuriamas naujas skaidinys, jis pasirenkamas pagal kelią, kuriame yra mažiausiai skaidinių.
uostas6667Serveris priima prievadą, prie kurio prisijungia klientas
zookeeper.connectnulis"ZooKeeper" ryšio eilutės formatas yra: hostname:port, kur pagrindinio kompiuterio pavadinimas ir prievadas yra atitinkamai "ZooKeeper" klasterio mazgo pagrindinis kompiuteris ir prievadas. Norėdami prisijungti prie kitų "ZooKeeper" mazgų, kai pagrindinis kompiuteris sugenda, galite sukurti kelis pagrindinius kompiuterius taip:
hostname1:port1, hostname2:port2, hostname3:port3.

"ZooKeeper" leidžia pridėti "chroot" kelią, kad visi kafkos duomenys klasteryje būtų saugomi tam tikru keliu. Kai keli "Kafka" klasteriai ar kitos programos naudoja tą patį "ZooKeeper" klasterį, galite naudoti šį metodą duomenų saugojimo keliui nustatyti. Tai galima įgyvendinti formatuojant ryšio eilutę taip:
pagrindinio kompiuterio pavadinimas1:prievadas1,pagrindinio kompiuterio pavadinimas2:prievadas2,pagrindinio kompiuterio pavadinimas3:prievadas3/chroot/kelias
Ši sąranka saugo visus kafka klasterio duomenis kelyje /chroot/path. Atminkite, kad prieš pradėdami brokerį, turite sukurti šį kelią, o vartotojai turi naudoti tą patį ryšio formatą.
message.max.baitai1000000Maksimalus pranešimų, kuriuos gali gauti serveris, dydis. Svarbu, kad vartotojo ir gamintojo nustatymai, susiję su šia savybe, būtų sinchronizuoti, kitaip gamintojo paskelbtas pranešimas vartotojui yra per didelis.
num.network.threads3Tinklo gijų, kurias serveris naudoja tinklo užklausoms apdoroti, skaičius; Paprastai šios ypatybės keisti nereikia.
num.io.threads8Įvesties / išvesties gijų, kurias serveris naudoja užklausoms apdoroti, skaičius; Gijų skaičius turėtų būti bent lygus standžiųjų diskų skaičiui.
fonas.temos4Foniniam apdorojimui, pvz., failų naikinimui, naudojamų gijų skaičius; Šios ypatybės keisti nereikia.
queued.max.Prašymai500Maksimalus užklausų, kurias galima įtraukti į eilę, kad įvesties / išvesties gija būtų apdorota prieš tinklo gijai nustojant skaityti naujas užklausas, skaičius.
host.namenulisbrokerio pagrindinio kompiuterio pavadinimas; Jei pagrindinio kompiuterio pavadinimas jau nustatytas, brokeris bus susietas tik su šiuo adresu; Jei nustatymo nėra, jis bus susietas su visomis sąsajomis ir paskelbs vieną kopiją ZK
advertised.host.namenulisJei nustatyta, jis siunčiamas gamintojams, vartotojams ir kitiems brokeriams kaip tarpininko pagrindinio kompiuterio pavadinimas
reklamuojamas.uostasnulisŠis uostas suteikiamas gamintojams, vartotojams ir kitiems tarpininkams ir naudojamas ryšiui užmegzti; Jį reikia nustatyti tik tuo atveju, jei skiriasi tikrasis prievadas ir prievadas, kurį serveris turi susieti.
socket.send.buffer.bytes100 * 1024SO_SNDBUFF talpyklos dydis, kurį serveris naudoja lizdų ryšiams užmegzti
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF talpyklos dydį, kurį serveris naudoja prisijungdamas prie lizdų
socket.request.max.baitai100 * 1024 * 1024Maksimalus serverio leidžiamas užklausos dydis;  Taip išvengsite serverio perpildymo, kuris turėtų būti mažesnis nei "Java" krūvos dydis
Skaičius.skaidiniai1Jei kuriant temą skaidinių skaičius nenurodytas, šis skaičius bus numatytasis skaidinių skaičius pagal temą.
log.segment.bytes1014*1024*1024Teminio skaidinio žurnalai saugomi daugelyje failų tam tikrame kataloge, kurie skaidinio žurnalus padalija į segmentus; Šis atributas yra didžiausias kiekvieno failo dydis; Kai aspektai pasiekia šią vertę, sukuriamas naujas failas. Šis parametras gali būti perrašytas pagal kiekvienos temos pagrindą.
Peržiūrėti  Hipersaito prisijungimas matomas.
log.roll.hours24 * 7Net jei failas nepasiekia log.segment.bytes, naujas failas sukuriamas, kai failo sukūrimo laikas pasiekia šią ypatybę. Šį nustatymą taip pat gali perrašyti temos lygio parametrai;
RodinysHipersaito prisijungimas matomas.
log.cleanup.policyIštrinti
log.retention.minutes ir log.retention.hours7 dienosLaikas, kai kiekvienas žurnalo failas buvo įrašytas prieš jį panaikinant. Numatytasis duomenų taupymo laikas yra vienodas visoms temoms.
log.retention.minutes ir log.retention.bytes naudojami žurnalo failų naikinimui nustatyti, neatsižvelgiant į tai, kuri ypatybė buvo perpildyta.
Šio ypatybės parametro galima perrašyti, kai tema iš esmės nustatyta.
RodinysHipersaito prisijungimas matomas.
log.retention.bytes-1Bendras kiekvieno skaidinio išsaugotų duomenų kiekis pagal kiekvieną temą; Atminkite, kad tai yra viršutinė skaidinio riba, todėl šis skaičius, padaugintas iš skaidinių skaičiaus, yra bendras duomenų kiekis, saugomas pagal temą. Taip pat atkreipkite dėmesį: jei nustatyti ir log.retention.hours, ir log.retention.bytes, viršijus bet kurią ribą, segmento failas bus ištrintas.
Atminkite, kad šį parametrą gali perrašyti kiekviena tema.
RodinysHipersaito prisijungimas matomas.
log.retention.check.interval.ms5 minutėsPatikrinkite intervalą tarp žurnalo segmentuotų failų, kad nustatytumėte, ar failo atributai atitinka naikinimo reikalavimus.
log.cleaner.enablefalseKai ši ypatybė nustatyta kaip false, ji bus panaikinta, kai žurnalas bus saugomas maksimalų laiką arba dydį. Jei nustatyta kaip teisinga, tai įvyks, kai įrašymo atributas pasieks viršutinę ribąHipersaito prisijungimas matomas.
log.cleaner.threads1Rąstų glaudinimą atliekančių gijų skaičius
log.cleaner.io.max.baitai.per sekundęJoksMaksimalus įvesties / išvesties skaičius, kurį gali turėti rąstų valytojas, atlikdamas rąstų sutankinimą. Šis nustatymas apriboja valiklį, kad netrukdytų aktyvioms užklausų paslaugoms.
log.cleaner.io.buffer.size500*1024*1024"Log Cleaner" indeksuoja žurnalus valymo proceso metu ir sumažina naudojamos talpyklos dydį. Geriausia jį nustatyti dideliu, kad būtų pakankamai atminties.
log.cleaner.io.buffer.load.factor512*1024Rąstų valymui reikalingo įvesties / išvesties gabalo dydis. Šio nustatymo keisti nereikia.
log.cleaner.io.buffer.load.factor0.9rąstų valymui naudojamos maišos lentelės apkrovos koeficientas; Šios parinkties keisti nereikia.
log.cleaner.backoff.ms15000Atliekamas laiko intervalas, per kurį rąstas išvalomas
log.cleaner.min.cleanable.ratio0.5Ši konfigūracija kontroliuoja, kaip dažnai rąstų tankintuvas bando išvalyti rąstus (daroma prielaida, kadHipersaito prisijungimas matomas.yra atviras). Pagal numatytuosius nustatymus venkite valyti daugiau nei 50% rąstų. Šis santykis yra susietas su maksimalia atsarginės kopijos žurnalo sunaudojama vieta (50% žurnalų yra suspausta 50%). Didesnis tarifas reiškia mažiau atliekų ir efektyviau išvalyti daugiau vietos. Šį parametrą galima perrašyti kiekviename temos parametre.
RodinysHipersaito prisijungimas matomas.
log.cleaner.delete.retention.ms1 dienalaikymo laikas; Maksimalus laikas suspaustiems žurnalams laikyti; Tai taip pat yra maksimalus laikas, per kurį klientas gali vartoti pranešimus, o skirtumas tarp log.retention.minutes yra tas, kad vienas valdo nesuspaustus duomenis, o kitas - suspaustus duomenis, kurie bus perrašyti nurodytu laiku, kai tema bus sukurta.
log.index.size.max.baitai10*1024*1024Didžiausias rąstų segmento dydis. Atkreipkite dėmesį, kad jei žurnalo dydis pasiekia šią reikšmę, reikia sugeneruoti naują žurnalo segmentą, net jei jo dydis neviršija log.segment.bytes ribos.
log.index.interval.bytes4096Atlikdami paėmimą, turite nuskaityti artimiausią poslinkį su tam tikru vietos kiekiu, kuo didesnis nustatymas, tuo geriau, paprastai naudokite numatytąją vertę
log.flush.interval.messagesLong.MaxValueŽurnalo failas "sinchronizuojamas" su disku prieš kaupiant pranešimus. Kadangi disko IO operacijos yra lėta operacija, bet taip pat būtina "duomenų patikimumo" priemonė, patikrinkite, ar reikalingas laiko intervalas kietajam diskui. Jei ši vertė yra per didelė, tai sukels per ilgą "sinchronizavimo" laiką (IO blokavimas), jei ši vertė yra per maža, tai sukels ilgą "fsync" (IO blokavimo) laiką, jei ši vertė yra per maža, tai sukels daug "sinchronizavimo" kartų, o tai reiškia, kad bendra kliento užklausa turi tam tikrą vėlavimą, o fizinio serverio gedimas lems pranešimų praradimą be fsync.
log.flush.scheduler.interval.msLong.MaxValuePatikrinkite, ar reikalingi fsync intervalai
log.flush.interval.msLong.MaxValueŠis skaičius naudojamas "fsync" laiko intervalui valdyti, jei pranešimų skaičius niekada nepasiekia į diską sukietėjusių pranešimų skaičiaus, tačiau laiko intervalas nuo paskutinio disko sinchronizavimo pasiekia slenkstį, taip pat bus suaktyvintas disko sinchronizavimas.
log.delete.delay.ms60000Saugojimo laiko po to, kai failas išvalomas rodyklėje, paprastai nereikia keisti
auto.create.topics.enabletrueAr leisti automatinį temų kūrimą. Jei tiesa, jis automatiškai sukurs temą, kurios nėra, kai gaminti ar gauti neegzistuoja. Priešingu atveju, norėdami sukurti temą, turite naudoti komandinę eilutę
controller.socket.timeout.ms30000Lizdo skirtojo laiko laikas, kai skaidinių valdymo valdiklis atlieka atsarginę kopiją.
valdiklis.pranešimas.queue.sizeInt.MaxValuekontrolierius-brokeris-kanalai
default.replication.factor1Numatytasis atsarginių kopijų skaičius nurodo tik automatiškai sukurtas temas
replica.lag.time.max.ms10000Jei sekėjas per šį laiką neišsiunčia užklausos, vadovas pašalins sekėją iš ISR ir laikys, kad sekėjas yra pakabintas
replica.lag.max.pranešimai4000Jei replikoje yra daugiau nei šis skaičius neatsarginių kopijų, lyderis pašalins sekėją ir laikys, kad sekėjas yra pakabintas
replica.socket.timeout.ms30*1000Lyderio skirtasis laikas lizdo tinklo užklausoms kuriant atsargines duomenų kopijas
replica.socket.receive.buffer.bytes64*1024Lizdo priėmimo buferis, kai siunčiama tinklo užklausa lyderiui atsarginės kopijos metu
replica.fetch.max.baitai1024*1024Didžiausia kiekvieno gavimo vertė atsarginės kopijos kūrimo metu
replica.fetch.min.bytes500Maksimalus laukimo laikas, kol duomenys pasieks vadovą, kai vadovas pateikia atsarginės kopijos užklausą
replica.fetch.min.bytes1Mažiausias atsakymo dydis po kiekvieno gavimo kuriant atsarginę kopiją
num.replica.fetchers1Gijų, kuriančių atsargines lyderio duomenų kopijas, skaičius
replica.high.watermark.checkpoint.interval.ms5000Kiekviena kopija tikrina, kaip dažnai kietėja aukščiausias vandens lygis
fetch.purgatory.purge.interval.requests1000Gauti užklausą Valymo intervalas
gamintojas.skaistykla.išvalyti.intervalas.užklausos1000Gamintojas prašo valymo intervalo
zookeeper.session.timeout.ms6000Zoologijos sodo prižiūrėtojo sesijos skirtasis laikas.
zookeeper.connection.timeout.ms6000Maksimalus laikas, per kurį klientas laukia, kol užmezga ryšį su zookeeper
zookeeper.sync.time.ms2000ZK pasekėjas ilgiausiai atsilieka nuo ZK lyderio
kontroliuojamas.shutdown.enabletrueAr įmanoma kontroliuoti brokerio uždarymą. Jei įmanoma, brokeris galės perkelti visus lyderius į kitus brokerius prieš uždarydamas. Tai sumažina nepasiekiamumą išjungimo proceso metu.
controlled.shutdown.max.pakartotiniai bandymai3Komandų, kurios gali sėkmingai vykdyti išjungimą prieš atliekant nepilną išjungimą, skaičius.
controlled.shutdown.retry.backoff.ms5000Atgalinis laikas tarp išjungimų
auto.leader.rebalance.enabletrueJei tai tiesa, kontrolierius automatiškai subalansuos brokerių lyderystę skaidiniuose
lyderis.disbalansas.per.brokeris.procentas10Didžiausias kiekvieno brokerio leidžiamas disbalanso koeficientas
lyderis.disbalansas.patikrinti.intervalas.sekundės300Patikrinkite lyderio disbalanso dažnį
offset.metadata.max.baitai4096Leidžia klientams išsaugoti maksimalų kompensacijų skaičių
max.connections.per.ipInt.MaxValueMaksimalus prisijungimų skaičius vienam brokeriui gali būti užmegztas prie kiekvieno IP adreso
max.connections.per.ip.overrides Maksimali numatytojo ryšio aprėptis pagal IP arba pagrindinio kompiuterio pavadinimą
connections.max.idle.ms600000Tuščių ryšių skirtojo laiko riba
log.roll.jitter. {ms,valandos}0Maksimalus drebėjimo skaičius, išgautas iš logRollTimeMillis
num.recovery.threads.per.data.dir1Gijų, kurias kiekvienas duomenų katalogas naudoja atkūrimui registruoti, skaičius
unclean.leader.election.enabletrueNurodoma, ar ISR galima naudoti nereplikų nustatymą kaip lyderį
ištrinti.topic.enablefalseGalima ištrinti temas
offsets.topic.num.partitions50Korespondentinės perdavimo temos skaidinių skaičius. Kadangi šio pakeitimo po diegimo šiuo metu nepalaikoma, rekomenduojame naudoti aukštesnį gamybinį parametrą (pvz., 100–200).
offsets.topic.retention.minutes1440Poslinkiai, kurie egzistavo ilgiau nei šis terminas, bus pažymėti kaip laukiantys panaikinimo
offsets.retention.check.interval.ms600000Korespondentų tvarkytuvas tikrina pasenusių poslinkių dažnumą
offsets.topic.replication.factor3Temos poslinkio atsarginių kopijų skaičius. Rekomenduojama nustatyti didesnius skaičius, kad būtų užtikrintas didesnis
offset.topic.segment.bytes104857600kompensuoja temą.
offsets.load.buffer.size5242880Šis parametras yra susijęs su paketo dydžiu ir naudojamas skaitant iš poslinkių segmento.
offsets.commit.required.acks-1Patvirtinimų skaičių reikia nustatyti, kad korespondentinis įsipareigojimas būtų priimtinas, ir paprastai jo keisti nereikia


Nekilnojamasis turtasNumatytasisNumatytoji serverio ypatybėApibūdinimas
valymas.politikaIštrintilog.cleanup.policyArba "ištrinti", arba "kompaktiškai"; Ši eilutė nurodo, kaip panaudoti seną žurnalo dalį; Taikant numatytąjį metodą ("ištrinti") senoji dalis bus pašalinta, kai bus pasiektas jų perdirbimo laikas arba dydžio apribojimas. "Kompaktiškas" suspaus rąstus
delete.retention.ms86400000 (24 valandos)log.cleaner.delete.retention.msSkirtumas tarp log.retention.minutes yra tas, kad vienas valdo nesuspaustus duomenis, o kitas - suspaustus duomenis. Šią konfigūraciją gali perrašyti prisegimo parametrai, kai sukuriama tema
praplovimas.pranešimaiJokslog.flush.interval.messagesŠi konfigūracija nurodo laiko intervalą, per kurį reikia priversti fsync žurnalus. Pavyzdžiui, jei ši parinktis nustatyta kaip 1, po kiekvieno pranešimo reikia fsync, o jei nustatyta kaip 5, fsync reikia kiekvienam 5 pranešimui. Apskritai rekomenduojama nenustatyti šios vertės. Šio parametro nustatymas reikalauja būtino kompromiso tarp "duomenų patikimumo" ir "našumo". Jei ši reikšmė yra per didelė, kiekvieną kartą "fsync" bus ilgai (IO blokavimas), o jei ši vertė yra per maža, tai sukels daug "fsync", o tai taip pat reiškia, kad bendra kliento užklausa vėluoja. Dėl fizinio serverio gedimo pranešimai bus prarasti be fsync.
flush.msJokslog.flush.interval.msŠi konfigūracija naudojama prisegti laiko intervalą tarp priverstinio fsync žurnalų į diską; Pavyzdžiui, jei nustatyta 1000, fsync reikia kas 1000 ms. Ši parinktis paprastai nerekomenduojama
index.interval.bytes4096log.index.interval.bytesNumatytasis nustatymas užtikrina, kad prie pranešimo pridedame indeksą kas 4096 baitus, o daugiau indeksų priartina perskaitytą pranešimą, tačiau indekso dydis bus padidintas. Ši parinktis paprastai nereikalinga
maks.pranešimas.baitai1000000maks.pranešimas.baitaiMaksimalus kafkos papildymo pranešimo dydis. Atminkite, kad jei padidinsite šį dydį, taip pat turite padidinti vartotojo gavimo dydį, kad vartotojas galėtų gauti pranešimus iki maksimalaus dydžio.
min.cleanable.dirty.ratio0.5min.cleanable.dirty.ratioŠi konfigūracija kontroliuoja, kaip dažnai rąstų kompresorius bando išvalyti rąstus. Pagal numatytuosius nustatymus bus išvengta žurnalų, kurių suspaudimo greitis didesnis nei 50%. Šis santykis leidžia išvengti didžiausio vietos švaistymo
min.insync.replicas1min.insync.replicasKai prodiuseris nustato request.required.acks į -1, min.insync.replicas nurodo minimalų replikų skaičių (kiekvienas repica įrašymas turi būti sėkmingas), o jei šis skaičius nepasiekiamas, prodiuseris pateiks išimtį.
išlaikymas.baitaiJokslog.retention.bytesJei naudojate saugojimo strategiją "naikinti", ši konfigūracija nurodo maksimalų dydį, kurį žurnalas gali pasiekti prieš jį panaikinant. Pagal numatytuosius nustatymus dydžio apribojimo nėra, o tik laiko limitas
retention.ms7 dienoslog.retention.minutesJei naudojate saugojimo strategiją "naikinti", ši konfigūracija nurodo laiką, kai žurnalas buvo įrašytas prieš naikinimo žurnalą.
segmentas.baitai1 GBlog.segment.bytesKafkoje rąstų žurnalai saugomi dalimis, o ši konfigūracija nurodo rąstų žurnalų dydį, suskirstytą į dalis
segmentas.indeksas.baitai10 MBlog.index.size.max.baitaiŠi konfigūracija yra maždaug indekso failo dydis, susietas tarp poslinkių ir failų vietų; Šios konfigūracijos paprastai nereikia keisti
segment.ms7 dienoslog.roll.hoursNet jei žurnalo segmento failas nepasiekia tokio dydžio, kurį reikia ištrinti ar suspausti, kai žurnalo laikas pasieks šią viršutinę ribą, bus priverstas sukurti naują žurnalo dalies failą
segment.jitter.ms0 log.roll.jitter. {ms,valandos}Didžiausias drebėjimas, kurį reikia atimti iš logRollTimeMillis.


Vartotojų konfigūracija

Nekilnojamasis turtasNumatytasisApibūdinimas
group.id Eilutė, unikaliai identifikuojanti grupę, kurioje yra vartotojo procesas, ir jei nustatytas tas pats grupės ID, tai reiškia, kad šie procesai priklauso tai pačiai vartotojų grupei
zookeeper.connect Nurodykite "Zookeeper" ryšio eilutę, formatas yra hostname:port, čia pagrindinis kompiuteris ir prievadas yra ir "Zookeeper" serverio pagrindinis kompiuteris, ir prievadas, kad neprarastumėte kontakto sugedus "Zookeeper" įrenginiui, galite nurodyti kelis pagrindinio kompiuterio pavadinimą:prievadus, naudodami kablelius kaip atskyrimą:
Pagrindinio kompiuterio pavadinimas1:prievadas1,pagrindinio kompiuterio pavadinimas2:prievadas2,pagrindinio kompiuterio pavadinimas3:prievadas3
Galite pridėti "ZooKeeper" chroot kelią prie "ZooKeeper" ryšio eilutės, kuri naudojama savo duomenims saugoti, tokiu būdu:
pagrindinio kompiuterio pavadinimas1:prievadas1,pagrindinio kompiuterio pavadinimas2:prievadas2,pagrindinio kompiuterio pavadinimas3:prievadas3/chroot/kelias
consumer.idnulisSąrankos nereikia ir paprastai generuojama automatiškai
socket.timeout.ms30*100Tinklo užklausų skirtojo laiko apribojimai. Tikrasis skirtasis laikas yra max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes64*1024lizdas naudojamas tinklo užklausų talpyklos dydžiui gauti
fetch.message.max.baitai1024*1024Didžiausias baitų skaičius vienam gavimo pranešimui vienai gavimo užklausai. Šie baitai bus prižiūrimi kiekvienam skaidiniui naudojamoje atmintyje, todėl šis nustatymas kontroliuos vartotojo naudojamos atminties kiekį. Gavimo užklausos dydis turi būti bent jau lygus didžiausiam serverio leidžiamam pranešimo dydžiui, priešingu atveju pranešimo, kurį gali siųsti gamintojas, dydis yra didesnis nei vartotojas.
num.consumer.fetchers1Duomenų gavimo gijų, naudojamų duomenims gauti, skaičius
auto.commit.enabletrueJei teisinga, vartotojo gauto pranešimo poslinkis bus automatiškai sinchronizuojamas su zoologijos sodo prižiūrėtoju. Šį įsipareigojimo poslinkį naudos naujas vartotojas, kai procesas užstrigs
auto.commit.interval.ms60*1000Dažnumas, kuriuo vartotojas pateikia kompensaciją zoologijos sodo prižiūrėtojui, yra sekundėmis
queued.max.message.chunks2Maksimalus pranešimų, naudojamų talpykloje, skaičius. Kiekvienas gabalas turi būti toks pat kaip fetch.message.max.baitai
rebalance.max.pakartotiniai bandymai4Kai į vartotojų grupę įtraukiamas naujas vartotojas, vartotojų grupė bando iš naujo subalansuoti kiekvienam vartotojui priskirtų pertvarų skaičių. Jei vartotojų surinkimas pasikeičia, šis perbalansavimas nepavyksta ir vėl įtraukiamas vykdant paskirstymą
fetch.min.bytes1Mažiausias baitų skaičius, kurį serveris turėtų grąžinti su kiekviena gavimo užklausa. Jei pateikiama per mažai duomenų, užklausa laukia, kol bus pateikta pakankamai duomenų.
fetch.wait.max.ms100Jei nepakanka duomenų fetch.min.bytes patenkinti, ši konfigūracija nurodo maksimalų laiką, kurį serveris blokuos prieš atsakydamas į gavimo užklausą.
rebalance.backoff.ms2000Atgal laikas prieš pakartotinai bandant panašumą
refresh.leader.backoff.ms200Reikia palaukti, kol bandysime nustatyti, ar padalijimo lyderis prarado lyderystę
auto.offset.resetdidžiausiasJei zookeeper nėra inicijuoto poslinkio, jei poslinkis yra atsakas į šią reikšmę:
mažiausias: automatinis poslinkio atstatymas į mažiausią poslinkį
didžiausias: automatinis poslinkis iš naujo nustatomas į didžiausio
Visa kita: meta išimtį vartotojui
consumer.timeout.ms-1Jei pranešimo nėra, net ir laukus tam tikrą laiką, pateikiama skirtojo laiko išimtis
išskirti.vidinės.temostrueAr rodyti vidinių temų pranešimus vartotojams
paritition.assignment.strategydiapazonasPasirinkite skaidinių priskyrimo vartotojų srautui strategiją, pasirinktinai diapazoną, apvalų
client.idGrupės ID reikšmėyra konkretaus vartotojo eilutė, padedanti sekti skambučius kiekvienoje užklausoje. Tai turėtų logiškai patvirtinti užklausą sugeneravusią programą
zookeeper.session.timeout.ms6000Zoologijos sodo prižiūrėtojų sesijų skirtojo laiko apribojimai. Jei vartotojas per tą laiką zoologijos sodo prižiūrėtojui neišsiunčia širdies plakimo pranešimo, jis laikomas pakabintu ir bus sukurtas panašumas
zookeeper.connection.timeout.ms6000Maksimalus laukimo laikas, kol klientas užmezga "Zookeeper" ryšį
zookeeper.sync.time.ms2000ZK pasekėjai gali maksimaliai atsilikti nuo ZK lyderio
ofsets.saugojimaszoologijos sodo prižiūrėtojasVietos, kuriose laikomi poslinkiai: zoologijos sodo prižiūrėtojas arba kafka
offset.channel.backoff.ms1000Pakartotinio prisijungimo prie poslinkio kanalo arba nepavykusio poslinkio gavimo / perdavimo užklausos pakartotinio paleidimo laikas
offsets.channel.socket.timeout.ms10000Lizdo skirtojo laiko riba atsakymui į gavimo / perdavimo užklausos atsakymą skaitant poslinkį. Šį skirtąjį laiką naudoja vartotojo metaduomenų užklausa, kad užklaustų poslinkio valdymą
offsets.commit.max.pakartotiniai bandymai5Kiek kartų korespondentinis patvirtinimas buvo pakartotas. Šis pakartotinis bandymas taikomas tik korespondentiniams įsipareigojimams tarp išjungimo. jis
dual.commit.enabledtrueJei naudojate "kafka" kaip offsets.storage, galite du kartus (ir vieną kartą kafka) įsipareigoti zookeeper. Tai būtina pereinant nuo zoologijos sodo prižiūrėtojo ofsetinės saugyklos prie kafkos ofsetinės saugyklos. Bet kuriai vartotojų grupei saugi rekomendacija išjungti šią parinktį, kai perkėlimas bus baigtas
partition.assignment.strategydiapazonasPasirinkite "diapazono" ir "apvalaus" strategijas kaip skaidinių priskyrimo vartotojų duomenų srautams politiką; Apskritas pertvarų skirstytuvas paskirsto visas turimas skaidines ir visas turimas vartotojų gijas. Jis priskirs skaidinio kilpą vartotojo gijai. Jei visi vartotojų atvejai yra pasirašyti nustatyti, skaidiniai yra padalinti į deterministinius skirstinius. Apvalaus paskirstymo strategija įmanoma tik tuo atveju, jei tenkinamos šios sąlygos: (1) Kiekviena tema turi vienodą duomenų srautų skaičių vienam vartotojui. (2) Prenumeruojamų temų rinkinys nustatomas kiekvienam vartotojų grupės vartotojų atvejui.


Gamintojo konfigūracijos

Nekilnojamasis turtasNumatytasisApibūdinimas
metadata.broker.list Patiekite bootstrapping. Gamintojas naudojamas tik metaduomenims (temoms, skaidiniams, replikoms) gauti. Lizdo jungtis faktiniams duomenims siųsti bus sukurta remiantis grąžintais metaduomenų duomenimis. Formatas yra:
host1:port1,host2:port2
Šis sąrašas gali būti brokerių subsąrašas arba VIP, nurodantis brokerius
prašymas.reikalingas.acks0Ši konfigūracija yra patvirtinimo reikšmė, nurodanti, kada gamybos užklausa laikoma baigta. Visų pirma, kiek kitų brokerių turėjo pateikti duomenis į savo žurnalus ir patvirtinti šią informaciją savo vadovui. Tipinės vertės:
0: nurodo, kad gamintojas niekada nelaukia brokerio patvirtinimo (toks pat elgesys kaip 0,7). Ši parinktis suteikia mažiausią delsą, bet tuo pačiu ir didžiausią riziką (nes duomenys prarandami sugedus serveriui).
1: Nurodo, kad lyderio replika gavo duomenų patvirtinimą. Ši parinktis turi mažą delsą ir užtikrina, kad serveris patvirtintų, kad ji gauta.
-1: Prodiuseris gauna patvirtinimą, kad visos sinchronizuotos replikos gavo duomenis. Delsa yra didžiausia, tačiau šis metodas visiškai nepašalina prarastų pranešimų rizikos, nes sinchronizuotų replikų skaičius gali būti 1. Jei norite užtikrinti, kad kai kurios replikos gautų duomenis, temos lygio nustatymuose turėtumėte nustatyti parinktį min.insync.replicas. Perskaitykite projekto dokumentaciją, kad gautumėte išsamesnę diskusiją.
request.timeout.ms10000Brokeris stengiasi įgyvendinti request.required.acks reikalavimą, kitaip klientui bus išsiųsta klaida
gamintojas.tipasSinchronizuotiŠi parinktis prisega, ar pranešimas siunčiamas asinchroniškai fono gijoje. Teisingos vertės:
(1) asinchroninis: asinchroninis siuntimas
(2) sinchronizavimas: sinchronizuotas siuntimas
Nustatę gamintoją į asinchroninį, galime apdoroti užklausas partijomis (o tai naudinga didesniam pralaidumui), tačiau tai taip pat sukuria galimybę, kad kliento įrenginys praras neišsiųstus duomenis
serializatorius.klasėkafka.serializer.DefaultEncoderPranešimo serijos kategorija. Numatytasis koduotuvas įveda vieną baitą[] ir grąžina tą patį baitą[]
raktas.serializatorius.klasė Raktinių žodžių serializavimo klasė. Jei tai nenurodyta, numatytoji reikšmė yra atitikti pranešimą
skaidytuvas.klasėkafka.producer.DefaultPartitionerPartitioner klasė, skirta padalinti pranešimus į potemes. Numatytasis skaidiklis yra pagrįstas rakto maišos lentele
suspaudimas.kodekasjoksŠis parametras gali nustatyti duomenų glaudinimo kodeką, kurį galima pasirinkti kaip "nėra", "gzip", "snappy".
suspaustas.temosnulisŠis parametras gali būti naudojamas nustatyti, ar tam tikros temos yra suglaudintos. Jei suglaudintas kodekas yra kitas kodekas nei NoCompressCodec, šie kodekai taikomi nurodytiems temų duomenims. Jei suglaudintų temų sąrašas tuščias, taikykite konkretų suglaudintą kodeką visoms temoms. Jei suglaudintas kodekas yra NoCompressionCodec, glaudinimas galimas ne visoms temoms.
message.send.max.pakartotiniai bandymai3Dėl šio parametro gamintojas automatiškai pakartos nepavykusias siuntimo užklausas. Šis parametras prisega pakartojimų skaičių. Pastaba: Nustačius ne 0 reikšmę, tam tikros tinklo klaidos pasikartos: sukels siuntimą ir praras patvirtinimą
retry.backoff.ms100Prieš kiekvieną pakartotinį bandymą prodiuseris atnaujina atitinkamos temos metaduomenis, kad sužinotų, ar paskirtas naujas vadovas. Kadangi lyderio atranka užtrunka šiek tiek laiko, ši parinktis nurodo, kiek laiko gamintojas turi laukti, kol atnaujins metaduomenis.
topic.metadata.refresh.interval.ms600*1000Prodiuseris paprastai atnaujina temos metaduomenis kai kuriais gedimo scenarijais (trūksta skaidinio, lyderis nepasiekiamas ir kt.). Jis pereis reguliarų ciklą. Jei nustatysite neigiamą reikšmę, metaduomenys bus atnaujinti tik tuo atveju, jei nepavyks. Jei nustatyta 0, metaduomenys atnaujinami po kiekvieno pranešimo išsiuntimo (ši parinktis nerekomenduojama, sistema sunaudoja per daug). Svarbu: atnaujinimai atliekami tik išsiuntus pranešimą, todėl jei gamintojas niekada neišsiunčia pranešimo, metaduomenys niekada neatnaujinami.
queue.buffering.max.ms5000Maksimalus laiko intervalas, per kurį vartotojas saugo duomenis talpykloje, kai taikomas asinchroninis režimas. Pavyzdžiui, jei pranešimas nustatytas kaip 100, pranešimai per 100 ms bus apdorojami paketais. Tai pagerins pralaidumą, bet padidins delsą dėl talpyklos.
queue.buffering.max.pranešimai10000Naudojant asinchroninį režimą, turi būti užblokuotas maksimalus neišsiųstų pranešimų, kuriuos galima įrašyti į eilę prieš gamintoją, skaičius arba prarasti duomenys
batch.num.messages200Naudodami asinchroninį režimą, galite paketiniu būdu apdoroti maksimalų pranešimų skaičių. Arba pranešimų skaičius pasiekė šį internete arba queue.buffer.max.ms atvyko, ir gamintojas jį apdoros
send.buffer.bytes100*1024lizdo rašymo talpyklos dydis
client.id“”Šis kliento ID yra konkretaus vartotojo eilutė, įtraukta į kiekvieną užklausą sekti skambutį, ir jis logiškai turėtų patvirtinti, kad programa pateikė užklausą.


Gamintojo konfigūracijos

Vardas, pavadinimasTipasNumatytasisSvarbaApibūdinimas
boostrap.serveriaisąrašas aukštasPagrindinio kompiuterio / prievado grupė, skirta užmegzti ryšį su kafkos klasteriu. Duomenys bus įkelti tolygiai visuose serveriuose, nepriklausomai nuo to, kuris serveris skirtas įkrovai. Šis sąrašas turi įtakos tik inicijuotiems pagrindiniams kompiuteriams (kurie naudojami visiems serveriams aptikti). Šis sąrašo formatas:
host1:port1,host2:port2,...
Kadangi šie serveriai naudojami tik ryšiams inicijuoti, kad būtų galima aptikti visas klasterio narystes (kurios gali keistis dinamiškai), šiame sąraše nebūtinai turi būti visi serveriai (galbūt norėsite daugiau nei vieno serverio, nors šiuo atveju vienas serveris gali neveikti). Jei šiame sąraše nėra serverio, duomenų siuntimas nepavyks, kol sąrašas nebus pasiekiamas.
Ackseilutė1aukštasGamintojui reikia signalo iš serverio, kad patvirtintų gavimą gavus duomenis, ir ši konfigūracija nurodo, kiek tokių patvirtinimo signalų reikia perdirbėjui. Ši konfigūracija iš tikrųjų rodo duomenų atsarginių kopijų prieinamumą. Šie parametrai yra įprastos parinktys:
(1) acks=0: nustatyta 0 reiškia, kad gamintojui nereikia laukti gautos informacijos patvirtinimo. Replika bus nedelsiant įtraukta į lizdo buferį ir laikoma išsiųsta. Šiuo atveju nėra garantijos, kad serveris sėkmingai gavo duomenis, o pakartotinis konfigūracijos bandymas neveiks (nes klientas nežino, ar nepavyko), o grįžtamojo ryšio poslinkis visada bus nustatytas į -1.
(2) acks=1: Tai reiškia, kad bent jau palaukite, kol lyderis sėkmingai įrašys duomenis į vietinį žurnalą, bet ne visi sekėjai sėkmingai parašys. Tokiu atveju, jei sekėjas nesėkmingai sukuria atsarginę duomenų kopiją ir vadovas vėl pakabina ragelį, pranešimas bus prarastas.
(3) acks=all: Tai reiškia, kad lyderis turi palaukti, kol visos atsarginės kopijos sėkmingai parašys žurnalus, ir ši strategija užtikrins, kad duomenys nebus prarasti tol, kol išliks viena atsarginė kopija. Tai yra stipriausia garantija.
(4) Galimi ir kiti nustatymai, pvz., acks=2, kuriems reikės tam tikro skaičiaus akų, tačiau ši strategija paprastai naudojama retai.
buferis.atmintisilgas33554432aukštasGamintojas gali būti naudojamas duomenų atminties dydžiui talpykloje. Jei duomenys generuojami greičiau nei siunčiami brokeriui, gamintojas užblokuos arba išmes išimtį, pažymėtą "block.on.buffer.full".

Šis parametras bus susijęs su bendra atmintimi, kurią gali naudoti gamintojas, tačiau tai nėra griežta riba, nes ne visa gamintojo naudojama atmintis naudojama talpyklai. Šiek tiek papildomos atminties naudojama glaudinimui (jei įvedamas glaudinimas), o dalis – priežiūros užklausoms.
suspaudimas.tipaseilutėjoksaukštasGamintojas yra suspaudimo tipas, naudojamas duomenims glaudinti. Numatytoji reikšmė yra nesuspausta. Teisingos parinkčių reikšmės yra nėra, gzip, snappy.
Glaudinimas geriausiai naudojamas paketiniam apdorojimui, kuo daugiau pranešimų apdorojama paketais, tuo geresnis glaudinimo našumas.
Pakartotiniai bandymaiint0aukštasNustačius didesnę nei 0 reikšmę, klientas iš naujo išsiųs visus duomenis, kai šie duomenys nepavyks. Atkreipkite dėmesį, kad šie pakartotiniai bandymai nesiskiria nuo tų, kai klientas gauna siuntimo klaidą. Leidžia pakartotinai keisti duomenų tvarką, jei abu pranešimų įrašai siunčiami į tą patį skaidinį, pirmasis pranešimas nepavyksta, antrasis pranešimas pasirodo anksčiau nei pirmasis pranešimas.
partijos dydisint16384VidutinisGamintojas bandys paketinius pranešimų įrašus, kad sumažintų užklausų skaičių. Tai pagerins kliento ir serverio našumą. Ši konfigūracija valdo numatytąjį paketinio apdorojimo pranešimų baitų skaičių.
Nebandoma apdoroti didesnių nei šis baitų skaičius pranešimų baitų.
Brokeriams siunčiamose užklausose bus keli paketai, kuriuose bus po vieną užklausą kiekvienam skaidiniui.
Mažesnės paketo vertės naudojamos mažiau ir gali sumažinti pralaidumą (0 naudos tik paketinį apdorojimą). Didesnės paketo vertės eikvoja daugiau vietos atmintyje, todėl reikia skirti atmintį konkrečioms paketo vertėms.
client.ideilutė VidutinisŠi eilutė siunčiama į serverį, kai pateikiama užklausa. Tikslas yra atsekti užklausų šaltinį, kad kai kurios programos, esančios už IP/Port leistinų sąrašų, galėtų siųsti informaciją. Ši programa gali nustatyti bet kokią eilutę, nes ji neturi jokio kito funkcinio tikslo, išskyrus įrašymą ir sekimą
linger.msilgas0VidutinisGamintojų grupė sujungs visus pranešimus, gaunamus tarp užklausos ir išsiuntimo, įrašydama atskirą užklausų paketą. Paprastai tai atsitinka tik tada, kai įrašas generuojamas greičiau nei siuntimo greitis. Tačiau tam tikromis sąlygomis klientas norės sumažinti užklausų skaičių ar net iki vidutinio krūvio. Ši sąranka bus atlikta pridedant nedidelį delsą - t. y. užuot išsiuntęs įrašą iš karto, prodiuseris lauks tam tikro delsos laiko, kad būtų galima išsiųsti kitus pranešimų įrašus, kuriuos galima paketuoti. Tai gali būti laikoma panašiu algoritmu kaip TCP Nagle. Šis nustatymas nustato didesnę paketo delsos ribą: kai gausime skaidinio paketo dydį, jis bus išsiųstas iš karto, nepriklausomai nuo šio nustatymo, bet jei gausime pranešimą su daug mažesniu baitų skaičiumi nei šis nustatymas, turime "palaukti" tam tikrą laiką, kad gautume daugiau pranešimų. Šis nustatymas pagal numatytuosius nustatymus yra 0, t. y. nėra vėlavimo. Pavyzdžiui, nustačius linger.ms=5, sumažės užklausų skaičius, bet tuo pačiu delsa padidės 5 ms.
max.request.sizeint1028576VidutinisDidžiausias prašomas baitų skaičius. Tai taip pat veiksminga maksimalaus įrašyto dydžio aprėptis. Pastaba: Serveris turi savo pranešimų įrašų dydžių nepaisymą, kurie skiriasi nuo šio parametro. Šis nustatymas riboja užklausų, kurias gamintojai gali siųsti masiškai vienu metu, skaičių, kad būtų išvengta didelio užklausų skaičiaus.
gauti.buferis.baitaiint32768VidutinisTCP receivecache dydis, kuris naudojamas skaitant duomenis
send.buffer.bytesint131072VidutinisTCP siuntimo talpyklos dydis, kuris naudojamas siunčiant duomenis
timeout.msint30000VidutinisŠi konfigūracijos parinktis valdo maksimalų laiką, per kurį serveris laukia patvirtinimo iš sekėjų. Jei per šį laiką patvirtintų užklausų skaičius neįvykdomas, grąžinama klaida. Šis skirtasis laikas matuojamas serverio pusėje ir neturi tinklo delsos, įskaitant užklausas
blokas.on.buffer.fullBulio logikatruežemasKai baigiasi atminties talpykla, turime nustoti gauti naujų pranešimų įrašų arba mesti klaidas. Pagal numatytuosius nustatymus tai nustatyta kaip teisinga, tačiau kai kurių blokavimo gali būti neverta tikėtis, todėl geriau iškart išmesti klaidą. Taip yra, kai nustatyta kaip false: gamintojas pateikia išimties klaidą: BufferExhaustedException, jei įrašas buvo išsiųstas ir talpykla pilna
metadata.fetch.timeout.msilgas60000žemasTai reiškia pirmą kartą gautus kai kurių elementų duomenis. Elementai apima: temą, pagrindinį kompiuterį, skaidinius. Ši konfigūracija reiškia laiką, reikalingą elementui sėkmingai užbaigti pagal gavimą, kitaip klientui bus išsiųsta išimtis.
metadata.max.age.msilgas300000žemasLaikas mikrosekundėmis yra intervalas, kuriuo priverčiame atnaujinti metaduomenis. Net jei mes nematome jokių padalijimo lyderystės pokyčių.
metric.reporteriaisąrašas[]žemasKlasių, naudojamų metrikai matuoti, sąrašas. Įdiegus "MetricReporter" sąsają, bus galima pridėti klasių, kurios keičiasi generuojant naujus rodiklius. JmxReporter visada įtrauks būdą registruoti JMX statistiką
metrics.num.samplesint2žemasPavyzdžių, naudojamų metrikai palaikyti, skaičius
metrics.sample.window.msilgas30000žemasMetrikos sistema palaiko konfigūruojamą pavyzdžių skaičių koreguojamo dydžio lange. Ši konfigūracija konfigūruoja, pavyzdžiui, lango dydį. Mes galime išlaikyti du mėginius 30 sekundžių. Kai langas išvyniojamas, ištriname ir perrašome seniausią langą
recoonect.backoff.msilgas10žemasKai ryšys nepavyksta, laukimo laikas, kai vėl prisijungiame. Taip išvengiama pakartotinių klientų prisijungimų
retry.backoff.msilgas100žemasLaukimo laikas prieš bandant pakartoti nepavykusią gamybos užklausą. Venkite įstrigti siuntimo-nepavykimo aklavietėje.




Ankstesnis:【Praktika】 Eclipse įdiegia lombok papildinį
Kitą:"Java JMX" paprasta suprasti ir naudoti
 Savininkas| Paskelbta 2021-11-02 14:10:57 |
Server.properties konfigūracija

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com