Brokerio konfigūracijos
| Nekilnojamasis turtas | Numatytasis | Apibū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-logs | Kelias, 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ų. | | uostas | 6667 | Serveris priima prievadą, prie kurio prisijungia klientas | | zookeeper.connect | nulis | "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.baitai | 1000000 | Maksimalus 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.threads | 3 | Tinklo gijų, kurias serveris naudoja tinklo užklausoms apdoroti, skaičius; Paprastai šios ypatybės keisti nereikia. | | num.io.threads | 8 | Į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.temos | 4 | Foniniam apdorojimui, pvz., failų naikinimui, naudojamų gijų skaičius; Šios ypatybės keisti nereikia. | | queued.max.Prašymai | 500 | Maksimalus 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.name | nulis | brokerio 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.name | nulis | Jei nustatyta, jis siunčiamas gamintojams, vartotojams ir kitiems brokeriams kaip tarpininko pagrindinio kompiuterio pavadinimas | | reklamuojamas.uostas | nulis | Š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.bytes | 100 * 1024 | SO_SNDBUFF talpyklos dydis, kurį serveris naudoja lizdų ryšiams užmegzti | | socket.receive.buffer.bytes | 100 * 1024 | SO_RCVBUFF talpyklos dydį, kurį serveris naudoja prisijungdamas prie lizdų | | socket.request.max.baitai | 100 * 1024 * 1024 | Maksimalus 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.skaidiniai | 1 | Jei kuriant temą skaidinių skaičius nenurodytas, šis skaičius bus numatytasis skaidinių skaičius pagal temą. | | log.segment.bytes | 1014*1024*1024 | Teminio 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.hours | 24 * 7 | Net 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.policy | Ištrinti | | | log.retention.minutes ir log.retention.hours | 7 dienos | Laikas, 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 | -1 | Bendras 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.ms | 5 minutės | Patikrinkite intervalą tarp žurnalo segmentuotų failų, kad nustatytumėte, ar failo atributai atitinka naikinimo reikalavimus. | | log.cleaner.enable | false | Kai š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.threads | 1 | Rąstų glaudinimą atliekančių gijų skaičius | | log.cleaner.io.max.baitai.per sekundę | Joks | Maksimalus į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.size | 500*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.factor | 512*1024 | Rąstų valymui reikalingo įvesties / išvesties gabalo dydis. Šio nustatymo keisti nereikia. | | log.cleaner.io.buffer.load.factor | 0.9 | rąstų valymui naudojamos maišos lentelės apkrovos koeficientas; Šios parinkties keisti nereikia. | | log.cleaner.backoff.ms | 15000 | Atliekamas laiko intervalas, per kurį rąstas išvalomas | | log.cleaner.min.cleanable.ratio | 0.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.ms | 1 diena | laikymo 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.baitai | 10*1024*1024 | Didž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.bytes | 4096 | Atlikdami paėmimą, turite nuskaityti artimiausią poslinkį su tam tikru vietos kiekiu, kuo didesnis nustatymas, tuo geriau, paprastai naudokite numatytąją vertę | | log.flush.interval.messages | Long.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.ms | Long.MaxValue | Patikrinkite, ar reikalingi fsync intervalai | | log.flush.interval.ms | Long.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.ms | 60000 | Saugojimo laiko po to, kai failas išvalomas rodyklėje, paprastai nereikia keisti | | auto.create.topics.enable | true | Ar 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.ms | 30000 | Lizdo skirtojo laiko laikas, kai skaidinių valdymo valdiklis atlieka atsarginę kopiją. | | valdiklis.pranešimas.queue.size | Int.MaxValue | kontrolierius-brokeris-kanalai | | default.replication.factor | 1 | Numatytasis atsarginių kopijų skaičius nurodo tik automatiškai sukurtas temas | | replica.lag.time.max.ms | 10000 | Jei 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šimai | 4000 | Jei replikoje yra daugiau nei šis skaičius neatsarginių kopijų, lyderis pašalins sekėją ir laikys, kad sekėjas yra pakabintas | | replica.socket.timeout.ms | 30*1000 | Lyderio skirtasis laikas lizdo tinklo užklausoms kuriant atsargines duomenų kopijas | | replica.socket.receive.buffer.bytes | 64*1024 | Lizdo priėmimo buferis, kai siunčiama tinklo užklausa lyderiui atsarginės kopijos metu | | replica.fetch.max.baitai | 1024*1024 | Didžiausia kiekvieno gavimo vertė atsarginės kopijos kūrimo metu | | replica.fetch.min.bytes | 500 | Maksimalus laukimo laikas, kol duomenys pasieks vadovą, kai vadovas pateikia atsarginės kopijos užklausą | | replica.fetch.min.bytes | 1 | Mažiausias atsakymo dydis po kiekvieno gavimo kuriant atsarginę kopiją | | num.replica.fetchers | 1 | Gijų, kuriančių atsargines lyderio duomenų kopijas, skaičius | | replica.high.watermark.checkpoint.interval.ms | 5000 | Kiekviena kopija tikrina, kaip dažnai kietėja aukščiausias vandens lygis | | fetch.purgatory.purge.interval.requests | 1000 | Gauti užklausą Valymo intervalas | | gamintojas.skaistykla.išvalyti.intervalas.užklausos | 1000 | Gamintojas prašo valymo intervalo | | zookeeper.session.timeout.ms | 6000 | Zoologijos sodo prižiūrėtojo sesijos skirtasis laikas. | | zookeeper.connection.timeout.ms | 6000 | Maksimalus laikas, per kurį klientas laukia, kol užmezga ryšį su zookeeper | | zookeeper.sync.time.ms | 2000 | ZK pasekėjas ilgiausiai atsilieka nuo ZK lyderio | | kontroliuojamas.shutdown.enable | true | Ar į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 bandymai | 3 | Komandų, kurios gali sėkmingai vykdyti išjungimą prieš atliekant nepilną išjungimą, skaičius. | | controlled.shutdown.retry.backoff.ms | 5000 | Atgalinis laikas tarp išjungimų | | auto.leader.rebalance.enable | true | Jei tai tiesa, kontrolierius automatiškai subalansuos brokerių lyderystę skaidiniuose | | lyderis.disbalansas.per.brokeris.procentas | 10 | Didžiausias kiekvieno brokerio leidžiamas disbalanso koeficientas | | lyderis.disbalansas.patikrinti.intervalas.sekundės | 300 | Patikrinkite lyderio disbalanso dažnį | | offset.metadata.max.baitai | 4096 | Leidžia klientams išsaugoti maksimalų kompensacijų skaičių | | max.connections.per.ip | Int.MaxValue | Maksimalus 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.ms | 600000 | Tuščių ryšių skirtojo laiko riba | | log.roll.jitter. {ms,valandos} | 0 | Maksimalus drebėjimo skaičius, išgautas iš logRollTimeMillis | | num.recovery.threads.per.data.dir | 1 | Gijų, kurias kiekvienas duomenų katalogas naudoja atkūrimui registruoti, skaičius | | unclean.leader.election.enable | true | Nurodoma, ar ISR galima naudoti nereplikų nustatymą kaip lyderį | | ištrinti.topic.enable | false | Galima ištrinti temas | | offsets.topic.num.partitions | 50 | Korespondentinė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.minutes | 1440 | Poslinkiai, kurie egzistavo ilgiau nei šis terminas, bus pažymėti kaip laukiantys panaikinimo | | offsets.retention.check.interval.ms | 600000 | Korespondentų tvarkytuvas tikrina pasenusių poslinkių dažnumą | | offsets.topic.replication.factor | 3 | Temos poslinkio atsarginių kopijų skaičius. Rekomenduojama nustatyti didesnius skaičius, kad būtų užtikrintas didesnis | | offset.topic.segment.bytes | 104857600 | kompensuoja temą. | | offsets.load.buffer.size | 5242880 | Šis parametras yra susijęs su paketo dydžiu ir naudojamas skaitant iš poslinkių segmento. | | offsets.commit.required.acks | -1 | Patvirtinimų skaičių reikia nustatyti, kad korespondentinis įsipareigojimas būtų priimtinas, ir paprastai jo keisti nereikia |
| Nekilnojamasis turtas | Numatytasis | Numatytoji serverio ypatybė | Apibūdinimas | | valymas.politika | Ištrinti | log.cleanup.policy | Arba "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.ms | 86400000 (24 valandos) | log.cleaner.delete.retention.ms | Skirtumas 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šimai | Joks | log.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.ms | Joks | log.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.bytes | 4096 | log.index.interval.bytes | Numatytasis 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.baitai | 1000000 | maks.pranešimas.baitai | Maksimalus 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.ratio | 0.5 | min.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.replicas | 1 | min.insync.replicas | Kai 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.baitai | Joks | log.retention.bytes | Jei 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.ms | 7 dienos | log.retention.minutes | Jei naudojate saugojimo strategiją "naikinti", ši konfigūracija nurodo laiką, kai žurnalas buvo įrašytas prieš naikinimo žurnalą. | | segmentas.baitai | 1 GB | log.segment.bytes | Kafkoje rąstų žurnalai saugomi dalimis, o ši konfigūracija nurodo rąstų žurnalų dydį, suskirstytą į dalis | | segmentas.indeksas.baitai | 10 MB | log.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.ms | 7 dienos | log.roll.hours | Net 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.ms | 0 | log.roll.jitter. {ms,valandos} | Didžiausias drebėjimas, kurį reikia atimti iš logRollTimeMillis. |
Vartotojų konfigūracija
| Nekilnojamasis turtas | Numatytasis | Apibū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.id | nulis | Sąrankos nereikia ir paprastai generuojama automatiškai | | socket.timeout.ms | 30*100 | Tinklo užklausų skirtojo laiko apribojimai. Tikrasis skirtasis laikas yra max.fetch.wait+socket.timeout.ms | | socket.receive.buffer.bytes | 64*1024 | lizdas naudojamas tinklo užklausų talpyklos dydžiui gauti | | fetch.message.max.baitai | 1024*1024 | Didž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.fetchers | 1 | Duomenų gavimo gijų, naudojamų duomenims gauti, skaičius | | auto.commit.enable | true | Jei 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.ms | 60*1000 | Dažnumas, kuriuo vartotojas pateikia kompensaciją zoologijos sodo prižiūrėtojui, yra sekundėmis | | queued.max.message.chunks | 2 | Maksimalus pranešimų, naudojamų talpykloje, skaičius. Kiekvienas gabalas turi būti toks pat kaip fetch.message.max.baitai | | rebalance.max.pakartotiniai bandymai | 4 | Kai į 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.bytes | 1 | Maž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.ms | 100 | Jei nepakanka duomenų fetch.min.bytes patenkinti, ši konfigūracija nurodo maksimalų laiką, kurį serveris blokuos prieš atsakydamas į gavimo užklausą. | | rebalance.backoff.ms | 2000 | Atgal laikas prieš pakartotinai bandant panašumą | | refresh.leader.backoff.ms | 200 | Reikia palaukti, kol bandysime nustatyti, ar padalijimo lyderis prarado lyderystę | | auto.offset.reset | didžiausias | Jei 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 | -1 | Jei pranešimo nėra, net ir laukus tam tikrą laiką, pateikiama skirtojo laiko išimtis | | išskirti.vidinės.temos | true | Ar rodyti vidinių temų pranešimus vartotojams | | paritition.assignment.strategy | diapazonas | Pasirinkite skaidinių priskyrimo vartotojų srautui strategiją, pasirinktinai diapazoną, apvalų | | client.id | Grupė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.ms | 6000 | Zoologijos 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.ms | 6000 | Maksimalus laukimo laikas, kol klientas užmezga "Zookeeper" ryšį | | zookeeper.sync.time.ms | 2000 | ZK pasekėjai gali maksimaliai atsilikti nuo ZK lyderio | | ofsets.saugojimas | zoologijos sodo prižiūrėtojas | Vietos, kuriose laikomi poslinkiai: zoologijos sodo prižiūrėtojas arba kafka | | offset.channel.backoff.ms | 1000 | Pakartotinio prisijungimo prie poslinkio kanalo arba nepavykusio poslinkio gavimo / perdavimo užklausos pakartotinio paleidimo laikas | | offsets.channel.socket.timeout.ms | 10000 | Lizdo 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 bandymai | 5 | Kiek kartų korespondentinis patvirtinimas buvo pakartotas. Šis pakartotinis bandymas taikomas tik korespondentiniams įsipareigojimams tarp išjungimo. jis | | dual.commit.enabled | true | Jei 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.strategy | diapazonas | Pasirinkite "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 turtas | Numatytasis | Apibū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.acks | 0 | Š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.ms | 10000 | Brokeris stengiasi įgyvendinti request.required.acks reikalavimą, kitaip klientui bus išsiųsta klaida | | gamintojas.tipas | Sinchronizuoti | Š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.DefaultEncoder | Praneš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.DefaultPartitioner | Partitioner klasė, skirta padalinti pranešimus į potemes. Numatytasis skaidiklis yra pagrįstas rakto maišos lentele | | suspaudimas.kodekas | joks | Šis parametras gali nustatyti duomenų glaudinimo kodeką, kurį galima pasirinkti kaip "nėra", "gzip", "snappy". | | suspaustas.temos | nulis | Š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 bandymai | 3 | Dė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.ms | 100 | Prieš 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.ms | 600*1000 | Prodiuseris 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.ms | 5000 | Maksimalus 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šimai | 10000 | Naudojant 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.messages | 200 | Naudodami 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.bytes | 100*1024 | lizdo 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, pavadinimas | Tipas | Numatytasis | Svarba | Apibūdinimas | | boostrap.serveriai | sąrašas | | aukštas | Pagrindinio 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. | | Acks | eilutė | 1 | aukštas | Gamintojui 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.atmintis | ilgas | 33554432 | aukštas | Gamintojas 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.tipas | eilutė | joks | aukštas | Gamintojas 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 bandymai | int | 0 | aukštas | Nustač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 dydis | int | 16384 | Vidutinis | Gamintojas 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.id | eilutė | | 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.ms | ilgas | 0 | Vidutinis | Gamintojų 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.size | int | 1028576 | Vidutinis | Didž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.baitai | int | 32768 | Vidutinis | TCP receivecache dydis, kuris naudojamas skaitant duomenis | | send.buffer.bytes | int | 131072 | Vidutinis | TCP siuntimo talpyklos dydis, kuris naudojamas siunčiant duomenis | | timeout.ms | int | 30000 | Vidutinis | Š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.full | Bulio logika | true | žemas | Kai 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.ms | ilgas | 60000 | žemas | Tai 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.ms | ilgas | 300000 | žemas | Laikas mikrosekundėmis yra intervalas, kuriuo priverčiame atnaujinti metaduomenis. Net jei mes nematome jokių padalijimo lyderystės pokyčių. | | metric.reporteriai | sąrašas | [] | žemas | Klasių, 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.samples | int | 2 | žemas | Pavyzdžių, naudojamų metrikai palaikyti, skaičius | | metrics.sample.window.ms | ilgas | 30000 | žemas | Metrikos 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.ms | ilgas | 10 | žemas | Kai ryšys nepavyksta, laukimo laikas, kai vėl prisijungiame. Taip išvengiama pakartotinių klientų prisijungimų | | retry.backoff.ms | ilgas | 100 | žemas | Laukimo laikas prieš bandant pakartoti nepavykusią gamybos užklausą. Venkite įstrigti siuntimo-nepavykimo aklavietėje.
|
|