Broker Configs
| Kinnisvara | Vaikimisi | Kirjeldus | | broker.id | | Iga maaklerit saab tuvastada unikaalse mitte-negatiivse täisarvulise ID-ga; Seda ID-d saab kasutada maakleri "nimena" ning selle olemasolu võimaldab maakleril migreeruda teisele hostile/pordile ilma tarbijaid segadusse ajamata. Sa võid valida suvalise numbri ID-ks, kui ID on unikaalne. | | log.dirs | /tmp/kafka-logs | Rada, kuhu Kafka andmeid salvestab. See tee ei ole unikaalne, see võib olla mitu ja teed peavad olema eraldatud ainult komadega; Iga kord, kui luuakse uus partitsioon, valitakse see tee järgi, mis sisaldab kõige vähem partitsioone. | | sadam | 6667 | Server aktsepteerib pordi, millega klient ühendub | | Zookeeper.connect | null | ZooKeeperi ühendusstringi formaat on: hostname:port, kus hostnimi ja port on vastavalt ZooKeeperi klastri sõlme host ja port. Selleks, et ühenduda teiste ZooKeeperi sõlmedega, kui host läheb katki, saad luua mitu hosti järgmiselt:
hostname1:port1, hostname2:port2, hostname3:port3.
ZooKeeper võimaldab lisada "chroot" tee, et salvestada kogu kafka andmed klastris kindla tee alla. Kui mitu Kafka klastrit või muud rakendust kasutavad sama ZooKeeperi klastrit, saad seda meetodit kasutada andmete salvestustee määramiseks. Seda saab rakendada, vormindades ühendusstringi nii: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path See seadistus salvestab kogu kafka klastri andmed /chroot/path tee alla. Pane tähele, et enne maakleri käivitamist pead looma selle tee ning tarbijad peavad kasutama sama ühenduse formaati. | | message.max.baiti | 1000000 | Maksimaalne sõnumite suurus, mida server saab vastu võtta. Oluline on, et tarbija ja tootja seaded selle omaduse osas oleksid sünkroniseeritud, vastasel juhul on tootja poolt avaldatud sõnum tarbijale liiga suur. | | num.network.threads | 3 | Võrgulõimede arv, mida server kasutab võrgupäringute töötlemiseks; Üldiselt ei pea seda kinnisvara muutma. | | num.io.threads | 8 | Serveri poolt päringute töötlemiseks kasutatavate I/O lõimede arv; Lõimede arv peaks olema vähemalt võrdne kõvaketaste arvuga. | | background.threads | 4 | Taustatöötluseks kasutatavate lõimede arv, näiteks failide kustutamine; Seda omadust ei pea muutma. | | queued.max.requests | 500 | Maksimaalne päringute arv, mida saab järjekorda panna, et I/O lõim töötleks enne, kui võrgulõim lõpetab uute päringute lugemise. | | host.name | null | maakleri hostnimi; Kui hostinimi on juba määratud, on maakler seotud ainult selle aadressiga; Kui seadet pole, seob see kõik liidesed ja avaldab ühe koopia ZK-sse | | advertised.host.name | null | Kui see on määratud, saadetakse see tootjatele, tarbijatele ja teistele maakleritele kui maakleri hostnimi | | advertised.port | null | See port antakse tootjatele, tarbijatele ja teistele vahendajatele ning seda kasutatakse ühenduse loomiseks; Seda tuleb seadistada ainult siis, kui tegelik port ja port, mida server peab siduma, on erinevad. | | socket.send.buffer.bytes | 100 * 1024 | SO_SNDBUFF Vahemälu suurus, mida server kasutab sokliühenduste loomiseks | | socket.receive.buffer.bytes | 100 * 1024 | SO_RCVBUFF vahemälu suurus, mida server kasutab pistikupesadega ühendamiseks | | socket.request.max.baiti | 100 * 1024 * 1024 | Serveri lubatud maksimaalne päringu suurus; See aitab vältida serverite ületäitumist, mis peaksid olema väiksemad kui Java kuhja suurus | | num.partitions | 1 | Kui teema loomisel partitsioonide arvu ei määrata, on see arv vaikimisi sektsioonide arv teema all. | | log.segment.bytes | 1014*1024*1024 | Teemapartitsiooni logid on salvestatud paljudesse failidesse kindlas kataloogis, mis jagavad partitsiooni logid segmentideks; See atribuut on iga faili maksimaalne suurus; Kui mõõtmed jõuavad selle väärtuseni, luuakse uus fail. Seda seadet saab ületada iga teema alusel. Vaade Hüperlingi sisselogimine on nähtav. | | logi.roll.tunnid | 24 * 7 | Isegi kui fail ei jõua log.segment.bytes'ini, luuakse uus fail iga kord, kui faili loomise aeg selle omaduseni jõuab. Seda seadet saab üle kirjutada ka teematasandi seadistustega; VaadeHüperlingi sisselogimine on nähtav. | | log.cleanup.policy | kustuta | | | logi.retention.minutes ja log.retention.hours | 7 päeva | Aeg, mil iga logifail salvestati enne kustutamist. Vaikimisi andmete säästmise aeg on kõigi teemade puhul sama. logi.retention.minutes ja log.retention.bytes kasutatakse mõlemad logifailide kustutamise määramiseks, sõltumata sellest, milline omadus on üle ujutatud. Seda omaduse seadet saab üle kirjutada, kui teema on põhimõtteliselt määratud. VaadeHüperlingi sisselogimine on nähtav. | | log.retention.bytes | -1 | Iga partitsiooni poolt iga teema all salvestatud koguandmemaht; Pane tähele, et see on partitsiooni ülemine piir, seega see arv korrutatuna partitsioonide arvuga on kogu teema kohta salvestatud andmemaht. Pane tähele: kui on seatud nii log.retention.hours kui ka log.retention.bait, siis ühe piiri ületamine põhjustab segmendifaili kustutamise. Pane tähele, et seda seadet saab iga teema poolt üle kirjutada. VaadeHüperlingi sisselogimine on nähtav. | | log.retention.check.interval.ms | 5 minutit | Kontrolli logisegmenteeritud failide vahelist vahemikku, et selgitada, kas faili atribuudid vastavad kustutamisnõuetele. | | log.cleaner.enable | false | Kui see omadus on seatud vääraks, kustutatakse see, kui logi on salvestatud maksimaalse aja või suuruse jooksul. Kui see on seatud tõele, juhtub see siis, kui salvestusatribuut jõuab ülemisse piiriniHüperlingi sisselogimine on nähtav.。 | | log.cleaner.threads | 1 | Logaritmitihendust teostavate lõimede arv | | log.cleaner.io.max.baitid.sekundis | Ükski | Maksimaalne I/O-de arv, mida logipuhastajal võib olla logi kokkusurumisel. See seadistus piirab puhastajat, et vältida aktiivsete päringuteenuste segamist. | | log.cleaner.io.buffer.size | 500*1024*1024 | Log Cleaner indekseerib logisid puhastusprotsessi ajal ja vähendab kasutatava vahemälu suurust. Parim on seadistada see suureks, et tagada piisav mälu. | | log.cleaner.io.buffer.load.factor | 512*1024 | Logide puhastamiseks vajaliku I/O tüki suurus. Seda seadet ei pea muutma. | | log.cleaner.io.buffer.load.factor | 0.9 | logide puhastamisel kasutatava räsi tabeli koormustegur; Seda valikut ei pea muutma. | | log.cleaner.backoff.ms | 15000 | Ajavahemik, mille jooksul logi puhastatakse, tehakse | | logi.cleaner.min.cleanable.ratio | 0.5 | See konfiguratsioon kontrollib, kui tihti logikompaktor püüab palke puhastada (eeldatavastiHüperlingi sisselogimine on nähtav.on avatud). Vaikimisi väldi rohkem kui 50% palkide puhastamist. See suhe on seotud varulogi maksimaalse ruumiga (50% logidest on kokku surutud 50% juures). Kõrgem määr tähendab vähem jäätmeid ja rohkem ruumi saab tõhusamalt puhastada. Seda seadet saab igas teemaseades üle kirjutada. VaadeHüperlingi sisselogimine on nähtav.。 | | log.cleaner.delete.retention.ms | 1 päev | hoiustamisaeg; Maksimaalne aeg kokkusurutud logide hoidmiseks; See on ka maksimaalne aeg, mil klient saab sõnumeid tarbida, ning erinevus log.retention.minutes vahel seisneb selles, et üks kontrollib tihendamata andmeid ja teine tihendatud andmeid, mis kirjutatakse üle määratud aja jooksul, mil teema luuakse. | | log.index.size.max.baiti | 10*1024*1024 | Maksimaalne suurus logisegmendi kohta. Pane tähele, et kui logi suurus jõuab selle väärtuseni, tuleb genereerida uus logisegment isegi siis, kui suurus ei ületa log.segment.baitide piiri. | | log.index.interval.bytes | 4096 | Toomise ajal tuleb skaneerida lähimat nihket teatud ruumiga, mida suurem on seadistus, seda parem, kasuta üldiselt vaikimisi väärtust | | log.flush.interval.messages | Long.MaxValue | logifail "sünkroonitakse" kettale enne sõnumite kogumist. Kuna ketta IO operatsioonid on aeglased, kuid ka vajalik "andmete usaldusväärsuse" tagamiseks, kontrollige, kas kõvakettale kõvenemiseks vajalik ajavahemik on vajalik. Kui see väärtus on liiga suur, tähendab see liiga pikka "sünkroonimist" aega (IO blokeerimist), kui see väärtus on liiga väike, tähendab see pikka "fsync" perioodi (IO blokeerimist), kui see väärtus on liiga väike, tähendab see suurt hulka "sünkroonimise" aegu, mis tähendab, et kogu kliendipäringul on teatav viivitus ning füüsilise serveri rike põhjustab sõnumite kadumise ilma fsyncita. | | log.flush.scheduler.interval.ms | Long.MaxValue | Kontrolli, kas fsync-intervallid on vajalikud | | log.flush.interval.ms | Long.MaxValue | Seda numbrit kasutatakse "fsync" ajavahemiku kontrollimiseks, kui sõnumite arv ei jõua kunagi kettale kinnitatud sõnumite arvuni, kuid viimase ketta sünkroniseerimise ajavahemik jõuab läveni, käivitub ka ketta sünkroniseerimine. | | log.delete.delay.ms | 60000 | Faili kustutamise järel indeksis säilimisaega tavaliselt ei vaja muuta | | auto.create.topics.enable | true | Kas lubada automaatset teemade loomist. Kui see on tõsi, loob see automaatselt teema, mida ei eksisteeri, kui tootmine või toomine ei eksisteeri. Vastasel juhul pead teema loomiseks kasutama käsurea | | controller.socket.timeout.ms | 30000 | Pesa ajapiirangu aeg, kui partitsiooni halduskontroller teeb varukoopia. | | controller.message.queue.size | Int.MaxValue | kontrollerilt maaklerile-kanalid | | default.replication.factor | 1 | Vaikimisi varukoopiate arv viitab ainult automaatselt loodud teemadele | | replica.lag.time.max.ms | 10000 | Kui järgija ei saada selle aja jooksul toomispalvet, eemaldab juht järgija ISR-ist uuesti ja loeb järgija riputatuks | | replica.lag.max.sõnumid | 4000 | Kui replikal on rohkem kui see arv varundamata, eemaldab juht järgija ja loeb järgija riputatuks | | replica.socket.timeout.ms | 30*1000 | LEADER-Timeout aeg socket-võrgu päringute jaoks andmete varundamisel | | replica.socket.receive.buffer.bytes | 64*1024 | Socketi vastuvõtupuhver, kui saata võrgupäring liidrile varundamise ajal | | replica.fetch.max.baiti | 1024*1024 | Iga toomise maksimaalne väärtus varundamise ajal | | replica.fetch.min.bytes | 500 | Maksimaalne ooteaeg, et andmed jõuaksid liidrini, kui juht esitab varukoopia taotluse | | replica.fetch.min.bytes | 1 | Vastuse väikseim suurus pärast iga toomist varundamisel | | num.replica.fetchers | 1 | Lõimede arv, mis varundavad andmeid liidrilt | | replica.high.watermark.checkpoint.interval.ms | 5000 | Iga koopia kontrollib, kui tihti kõrgeim veetase kõveneb | | fetch.purgatory.purge.interval.requests | 1000 | Fetch taotleb puhastusintervalli | | producer.purgatory.purge.interval.requests | 1000 | Produtsent taotleb puhastusintervalli | | zookeeper.session.timeout.ms | 6000 | Loomaaia hoidja sessiooni aeg. | | zookeeper.connection.timeout.ms | 6000 | Maksimaalne aeg, mille klient ootab, et loomaaiahoidjaga ühendust luua. | | zookeeper.sync.time.ms | 2000 | ZK järgija jääb kõige kauem ZK liidrist maha | | controlled.shutdown.enable | true | Kas on võimalik kontrollida maakleri sulgemist. Kui võimalik, saab maakler enne sulgemist kõik juhid teistele maakleritele üle viia. See vähendab kättesaamatust väljalülitusprotsessi ajal. | | controlled.shutdown.max. kordused | 3 | Käskude arv, mis suudavad edukalt käivitada väljalülitamise enne mittetäieliku väljalülituse sooritamist. | | controlled.shutdown.retry.backoff.ms | 5000 | Tagasitõmbumise aeg seiskamiste vahel | | auto.leader.rebalance.enable | true | Kui see on tõsi, tasakaalustab kontroller automaatselt maaklerite juhtimise partitsioonide vahel | | liider.tasakaalutus.per.maakler.protsent | 10 | Iga maakleri lubatud maksimaalne tasakaalutuse suhe | | leader.tasakaalutus.kontroll.intervall.sekundid | 300 | Kontrolli liidri tasakaalutuse sagedust | | offset.metadata.max.baiti | 4096 | Võimaldab klientidel salvestada maksimaalse arvu oma nihkeid | | max.connections.per.ip | Int.MaxValue | Iga maakleri kohta saab iga IP-aadressi jaoks luua maksimaalne ühenduste arv | | max.connections.per.ip.overrides | | Vaikimisi ühenduse maksimaalne katvus IP või hostinime kohta | | connections.max.idle.ms | 600000 | Tühjade ühenduste ajapiirang | | logi.roll.jitter. {ms,hours} | 0 | Maksimaalne närvilisuste arv, mis on abstrakteeritud logRollTimeMillisist | | num.recovery.threads.per.data.dir | 1 | Lõimede arv, mida iga andmekataloog kasutab taastamise logimiseks | | unclean.leader.election.enable | true | Näitab, kas ISR-is on võimalik kasutada mitte-replikaate seadistust juhina | | delete.topic.enable | false | Võimalik teemasid kustutada | | offsets.topic.num.partitions | 50 | Nihke comset teema partitsioonide arv. Kuna selle muutmine pärast juurutust ei ole praegu toetatud, soovitame tootmises kasutada kõrgemat seadistust (nt 100-200). | | offsets.topic.retention.minutes | 1440 | Nihked, mis on eksisteerinud kauem kui see ajapiirang, märgitakse kustutamise ootel olevateks | | offsets.retention.check.interval.ms | 600000 | Nihkehaldur kontrollib vananenud nihkete sagedust | | offsets.topic.replication.factor | 3 | Teema nihke varukoopiate arv. Soovitatav on määrata kõrgemaid numbreid, et tagada suurem kättesaadavus | | offset.topic.segment.bytes | 104857600 | Nihutab teemat. | | offsets.load.buffer.size | 5242880 | See seadistus on seotud partii suurusega ja seda kasutatakse nihkesegmendist lugemisel. | | offsets.commit.required.acks | -1 | Kinnituste arv tuleb määrata enne, kui kompensatsioonikohustus on aktsepteeritav, ja tavaliselt ei pea seda muutma |
| Kinnisvara | Vaikimisi | Serveri vaikeomadus | Kirjeldus | | cleanup.policy | kustuta | log.cleanup.policy | Kas "delete" või "compact"; See string näitab, kuidas kasutada vana logi osa; Vaikimisi meetod ("kustuta") viskab vana osa ära, kui nende taaskasutusaja või suuruse piirang on saavutatud. "kompaktne" tihendab palgid | | delete.retention.ms | 86400000 (24 tundi) | log.cleaner.delete.retention.ms | Erinevus log.retention.minutes vahel seisneb selles, et üks kontrollib tihendamata andmeid ja teine tihendatud andmeid. Seda konfiguratsiooni saab teema loomisel kinnitamise parameetritega üle kirjutada | | flush.messages | Ükski | log.flush.interval.messages | See konfiguratsioon määrab ajavahemiku fsync-logide sundimiseks. Näiteks, kui see valik on seatud väärtusele 1, siis on fsync vajalik pärast iga sõnumit, ja kui seatud 5, on fsync vajalik iga 5 sõnumi kohta. Üldiselt soovitatakse seda väärtust mitte määrata. Selle parameetri seadistamine nõuab vajalikku kompromissi "andmete usaldusväärsuse" ja "jõudluse" vahel. Kui see väärtus on liiga suur, põhjustab iga kord pikk "fsync" aeg (IO blokeering), ja kui see väärtus on liiga väike, põhjustab see suurt hulka "fsync"-i, mis tähendab ka teatud viivitust kogu kliendipäringus. Füüsiline serveri rike põhjustab sõnumite kadumise ilma fsync'ita. | | flush.ms | Ükski | log.flush.interval.ms | Seda konfiguratsiooni kasutatakse ajavahemiku kinnitamiseks fsync logide sundimise vahel kettale; Näiteks, kui seatud 1000-le, siis on fsync vajalik iga 1000ms järel. See valik ei ole üldiselt soovitatav | | index.interval.bytes | 4096 | log.index.interval.bytes | Vaikeseade tagab, et lisame sõnumile indeksi iga 4096 baidi järel ning rohkem indekseid lähendab lugemissõnumit, kuid indeksi suurus suureneb. See valik ei ole tavaliselt vajalik | | max.message.bytes | 1000000 | max.message.bytes | Kafka lisasõnumi maksimaalne suurus. Pane tähele, et kui suurendad seda suurust, pead suurendama ka oma tarbija toomise suurust, et tarbija saaks sõnumeid nende maksimaalsete suuruste juurde tuua. | | minim.puhastatav.must.suhe | 0.5 | minim.puhastatav.must.suhe | See konfiguratsioon kontrollib, kui tihti logikompressor püüab palke puhastada. Vaikimisi välditakse logisid, mille tihendusmäär ületab 50%. See suhe väldib suurimat ruumi raiskamist | | min.insync.replicas | 1 | min.insync.replicas | Kui tootja seatakse request.required.acks väärtusele -1, määrab min.insync.replicas minimaalse replikade arvu (iga repica kirjutamine peab olema edukas), ja kui seda arvu ei saavutata, loob tootja erandi. | | retention.bytes | Ükski | log.retention.bytes | Kui kasutate "kustuta" säilitamispoliitikat, viitab see konfiguratsioon logi maksimaalsele suurusele enne kustutamist. Vaikimisi pole suurusepiirangut, vaid ainult ajapiirang | | retention.ms | 7 päeva | logi.retention.minutes | Kui kasutate "kustuta" säilitamispoliitikat, viitab see konfiguratsioon ajale, mil logi salvestati enne kustutamislogi. | | segment.baitid | 1GB | log.segment.bytes | Kafkas salvestatakse logilogid tükkidena ning see konfiguratsioon viitab logilogide suurusele, mis on jagatud tükkideks | | segment.index.baitid | 10MB | log.index.size.max.baiti | See konfiguratsioon on umbes indeksfaili suurus, mis on kaardistatud nihkete ja faili asukohtade vahel; Seda konfiguratsiooni ei ole tavaliselt vaja muuta | | segment.ms | 7 päeva | logi.roll.tunnid | Isegi kui logiploki fail ei saavuta kustutamist või tihendamist vajaliku suuruseni, sunnitakse, kui logiaeg jõuab selle ülemise piirini, uue logiploki faili loomise | | segment.jitter.ms | 0 | logi.roll.jitter. {ms,hours} | Maksimaalne jitter, mida logRollTimeMillisist lahutada. |
Tarbijakonfiguratsioonid
| Kinnisvara | Vaikimisi | Kirjeldus | | group.id | | String, mis unikaalselt tuvastab grupi, kus tarbijaprotsess asub, ja kui sama grupi ID on seatud, tähendab see, et need protsessid kuuluvad samasse tarbijagruppi | | Zookeeper.connect | | Määra Zookeeperi ühenduse string, formaat on hostnimi:port, siin on host ja port mõlemad Zookeeperi serveri host ja port, et vältida kontakti kaotamist pärast Zookeeperi masina rikkeid, saad määrata mitu hostnimi:porti, kasutades komasid eraldusena: hostname1:port1,hostnimi2:port2,hostnimi3:port3 Saad lisada ZooKeeperi chroot tee ZooKeeperi ühendusstringi, mida kasutatakse oma andmete salvestamiseks, järgmiselt: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path | | consumer.id | null | Seadistamist pole vaja ja genereeritakse tavaliselt automaatselt | | socket.timeout.ms | 30*100 | Võrgupäringute ajapiirangud. Tegelik ajapiirang on max.fetch.wait+socket.timeout.ms | | socket.receive.buffer.bytes | 64*1024 | socket'i kasutatakse võrgupäringute vahemälu suuruse vastuvõtmiseks | | fetch.message.max.baiti | 1024*1024 | Maksimaalne baitide arv ühe toomissõnumi kohta ühe toomispäringu kohta. Need baitid jälgitakse iga partitsiooni mälus, nii et see seade juhib tarbija kasutatava mälu hulka. Toomispäringu suurus peab olema vähemalt võrdne serveri lubatud maksimaalse sõnumi suurusega, vastasel juhul on sõnumi maht, mida tootja võib saata, suurem kui tarbija tarbitav suurus. | | num.consumer.fetchers | 1 | Andmete toomiseks kasutatavate toomislõimede arv | | auto.commit.enable | true | Kui see on tõsi, sünkroniseeritakse tarbija poolt toodud sõnumi nihe automaatselt loomaaia hoidjaga. Seda commit offset'i kasutab uus kasutaja, kui protsess katkeb | | auto.commit.interval.ms | 60*1000 | Tarbija esitamise sagedus loomaaia omanikule on sekundites | | queued.max.message.chunks | 2 | Maksimaalne sõnumite arv, mida kasutatakse tarbeks vahemällu salvestamiseks. Iga tükk peab olema sama mis fetch.message.max.baiti | | rebalance.max.korduvad katsed | 4 | Kui tarbijagruppi lisatakse uus tarbija, püüab tarbijate kogum tasakaalustada iga tarbija jaoks eraldatud partitsioonide arvu. Kui tarbija kogumine muutub, ebaõnnestub see tasakaalustamine ja taasaktiveerub jaotuse täitmisel | | fetch.min.bytes | 1 | Minimaalne baitide arv, mida server peaks iga toomispäringuga tagastama. Kui andmeid ei tagastata, ootab päring, kuni piisavalt andmeid on tagastatud. | | fetch.wait.max.ms | 100 | Kui fetch.min.bytes'i rahuldamiseks pole piisavalt andmeid, viitab see konfiguratsioon maksimaalsele ajale, mille server blokeerib enne toomispäringule vastamist. | | rebalance.backoff.ms | 2000 | Taganemise aeg enne Reblance'i uuesti proovimist | | refresh.leader.backoff.ms | 200 | On aeg oodata enne, kui üritatakse kindlaks teha, kas jagunemise juht on oma juhtpositsiooni kaotanud | | auto.offset.reset | Suurim | Kui zookeeperis ei ole initsialiseeritud nihke, siis kui nihe on vastus järgmisele väärtusele: väikseim: Automaatne nihe lähtestamine väikseimale nihkele suurim: Automaatne nihke lähtestamine suurima nihkele Kõik muu: Viskab erandi tarbijale | | consumer.timeout.ms | -1 | Kui sõnumit pole saadaval, isegi pärast kindla aja ootamist, rakendatakse ajapiirangu erand | | exclude.internal.topics | true | Kas tutvustada sisemiste teemade sõnumeid tarbijatele | | paritition.assignment.strategy | Levik | Vali poliitika, mis määrab partitsioone tarbijavoogudele, valikuliselt vahemik, ringrobin | | client.id | Grupi ID väärtus | on kasutajaspetsiifiline string, mis aitab jälgida kõnesid igas päringus. See peaks loogiliselt kinnitama taotluse, mis päringu genereeris | | zookeeper.session.timeout.ms | 6000 | Loomaaia töötaja sessioonide ajapiirangud. Kui tarbija ei saada selle aja jooksul loomaaia töötajale südamelöökide sõnumit, loetakse see katkestatuks ja tekib reblance | | zookeeper.connection.timeout.ms | 6000 | Maksimaalne ooteaeg, mille jooksul klient loob Zookeeperi ühenduse | | zookeeper.sync.time.ms | 2000 | ZK järgijad võivad ZK liidrist maha jääda maksimaalse aja jooksul | | offsets.storage | Loomaaia hoidja | Offsetide hoiustamiseks kasutatavad kohad: loomaaia hoidja või kafka | | offset.channel.backoff.ms | 1000 | Tagasitõmbumise aeg nihkekanaliga uuesti ühendamisel või ebaõnnestunud nihke toomise/commit'i taotluse uuesti proovimisel | | offsets.channel.socket.timeout.ms | 10000 | Pesa ajapiirangu vastusele toomise/commiteerimise päringule nihke lugemisel. Seda ajapiirangut kasutab consumerMetadata päring nihkehalduse taotlemiseks | | offsets.commit.max. kordused | 5 | Mitu korda offset-kohustust uuesti prooviti. See korduskatse kehtib ainult offset-commitide puhul sulgemise vahel. tema | | dual.commit.enabled | true | Kui kasutad "kafka" offsets.storage'ina, saad offset'i Zookeeperile kaks korda (ja korra kafkale). See on hädavajalik, kui liigud loomaaia hoidja-põhiselt offset-salvestuselt kafka-põhisele offset-salvestusele. Iga konkreetse tarbijagrupi puhul on ohutu soovitus see valik välja lülitada, kui migratsioon on lõppenud | | partition.assignment.strategy | Levik | Vali "vahemiku" ja "ringrobin" poliitikad partitsioonide määramiseks tarbijaandmevoogudele; Ringikujuline partitsiooni jaotaja eraldab kõik saadaolevad partitsioonid ning kõik tarbijalõimed. See määrab partitsioonitsükli tarbijalõimele. Kui kõik tarbija eksemplarid on määratud jaotusega, jagatakse partitsioonid deterministlikeks jaotusteks. Ringjaotuse strateegia on võimalik ainult siis, kui täidetud on järgmised tingimused: (1) Igal teemal on sama arv andmevooge tarbija tugevuse kohta. (2) Tellitud teemade kogum määratakse iga tarbija eksemplari kohta tarbijagrupis. |
Tootja konfiguratsioonid
| Kinnisvara | Vaikimisi | Kirjeldus | | metadata.broker.list | | Serveeri iseseisvalt tegutsemist. tootjat kasutatakse ainult metaandmete (teemad, partitsioonid, koopiad) saamiseks. Pesa ühendus andmete saatmiseks luuakse tagastatud metaandmete põhjal. Formaat on järgmine: host1:port1,host2:port2 See nimekiri võib olla maaklerite alamnimekiri või VIP, mis suunab maakleritele | | request.required.acks | 0 | See konfiguratsioon on kinnitusväärtus, mis näitab, millal tootmispäring loetakse lõpetatuks. Eriti see, kui paljud teised maaklerid on oma logidesse andmeid esitanud ja seda oma juhile kinnitanud. Tüüpilised väärtused hõlmavad: 0: Näitab, et tootja ei oota kunagi maaklerilt kinnitust (sama käitumine nagu 0,7). See valik pakub kõige väiksemat latentsust, kuid samas suurimat riski (sest andmed kaovad, kui server maha läheb). 1: Näitab, et liidri koopia on saanud andmete kinnituse. Sellel valikul on madal latentsus ja see tagab, et server kinnitab, et see on vastu võetud. -1: Tootja saab kinnituse, et kõik sünkroniseeritud koopiad on andmed kätte saanud. Latentsus on suurim, kuid see meetod ei kõrvalda täielikult kadunud sõnumite riski, sest sünkroniseeritud replikade arv võib olla 1. Kui soovite veenduda, et mõned replikad saavad andmeid, peaksite teematasandi seadetes määrama valiku min.insync.replicas. Loe põhjalikuma arutelu jaoks disainidokumentatsiooni. | | request.timeout.ms | 10000 | Maakler püüab rakendada request.required.acks nõuet, vastasel juhul saadetakse kliendile viga | | produtsent.tüüp | Sünkroonimine | See valik määrab, kas sõnum saadetakse asünkroonselt taustalõime. Õiged väärtused: (1) asünkroonne: Asünkroonne saatmine (2) sünkroonimine: Sünkroniseeritud saatmine Tootja asünkroonseks seadistamisega saame päringuid töödelda partiidena (mis on hea suurema läbilaskevõime saavutamiseks), kuid see loob ka võimaluse, et kliendimasin kaotab saatmata andmed | | serializer.class | kafka.serializer.DefaultEncoder | Sõnumi serialiseerimiskategooria. Vaikimisi kodeerija sisestab ühe baidi[] ja tagastab sama baidi[] | | key.serializer.class | | Serialiseerimise klass märksõnade jaoks. Kui seda ei antud, on vaikimisi vastata sõnumile | | partitioner.class | kafka.producer.DefaultPartitioner | partitioner class, et jagada sõnumeid alamteemade vahel. Vaikimisi partitsioneerija põhineb võtme räsitabelil | | compression.codec | Ükski | See parameeter võib määrata andmete tihendamiseks mõeldud koodek, mida saab valida kui "none", "gzip", "snappy". | | compressed.topics | null | Seda parameetrit saab kasutada selle määramiseks, kas teatud teemad on tihendatud. Kui tihendatud koodek on muu koodek kui NoCompressCodec, rakendatakse need koodekid määratud teemade andmetele. Kui tihendatud teemade nimekiri on tühi, rakenda konkreetne tihendatud koodek kõigile teemadele. Kui tihendatud koodek on NoCompressionCodec, siis tihendamine ei ole kõigi teemade jaoks saadaval. | | message.send.max. kordused | 3 | See parameeter paneb tootja automaatselt uuesti proovima ebaõnnestunud saatmispäringuid. See parameeter määrab korduste arvu. Märkus: mitte-0 väärtuse määramine põhjustab teatud võrguvead kordumist: saatmise ja kinnituse kaotuse | | retry.backoff.ms | 100 | Enne iga korduskatset uuendab tootja vastava teema metaandmeid, et näha, kas uus juht on määratud. Kuna juhi valik võtab veidi aega, määrab see valik, kui kaua tootja peab metaandmete uuendamiseks ootama. | | topic.metadata.refresh.interval.ms | 600*1000 | Tootja uuendab tavaliselt teema metaandmeid mõnes rikkeolukorras (partitsioon puudub, juht pole saadaval jne). Tal on regulaarne tsükkel. Kui seadistad selle negatiivsele väärtusele, uuendatakse metaandmeid ainult siis, kui see ebaõnnestub. Kui see on seatud 0-ks, uuendatakse metaandmeid pärast iga sõnumi saatmist (seda valikut ei soovitata, süsteem tarbib liiga palju). Oluline: Uuendused toimuvad alles pärast sõnumi saatmist, seega kui tootja sõnumit kunagi ei saada, ei uuendata metaandmeid kunagi. | | queue.buffering.max.ms | 5000 | Maksimaalne ajavahemik, mille jooksul kasutaja andmeid vahemällu salvestab, kui rakendatakse asünkroonset režiimi. Näiteks, kui sõnum on seatud 100-le, töödeldakse 100 ms raadiuses olevaid sõnumeid partiidena. See parandab läbilaskevõimet, kuid suurendab latentsust vahemällu salvestamise tõttu. | | queue.buffering.max.sõnumid | 10000 | Asünkroonse režiimi kasutamisel tuleb maksimaalne arv saatmata sõnumeid, mis saab enne tootjat järjekorda vahemällu salvestada, blokeerida või andmed kaduma | | batch.num.messages | 200 | Asünkroonse režiimi kasutamisel saad partiitöötluse kaudu töödelda maksimaalse arvu sõnumeid. Või on sõnumite arv jõudnud siia veebis või queue.buffer.max.ms on saabunud, ja produtsent töötleb selle | | send.buffer.bytes | 100*1024 | Socketi kirjutamisvahemälu suurus | | client.id | “” | See kliendi ID on kasutajaspetsiifiline string, mis on lisatud igasse päringusse kõne jälgimiseks, ning ta peaks loogiliselt suutma kinnitada, et rakendus esitas päringu. |
Tootja konfiguratsioonid
| Nimi | Tüüp | Vaikimisi | Tähtsus | Kirjeldus | | boostrap.servers | Nimekiri | | kõrge | Host/port grupp, et luua ühendus kafka klastriga. Andmed laaditakse ühtlaselt kõigi serverite vahel, sõltumata sellest, milline server on bootstrappinguks määratud. See loend mõjutab ainult initsialiseeritud hoste (mida kasutatakse kõigi serverite avastamiseks). See nimekirja formaat:
host1:port1,host2:port2,... Kuna neid servereid kasutatakse ainult ühenduste initsialiseerimiseks, et avastada klastri kõik liikmed (mis võivad dünaamiliselt muutuda), ei pea see nimekiri sisaldama kõiki servereid (võid soovida rohkem kui ühte serverit, kuigi antud juhul võib üks server olla maas). Kui selles nimekirjas serverit ei ole, ebaõnnestub andmete saatmine enne, kui nimekiri on saadaval. | | acks | string | 1 | kõrge | Tootja vajab serverilt signaali, et kinnitada vastuvõttu pärast andmete vastuvõttu, ning see konfiguratsioon viitab sellele, kui palju selliseid kinnitussignaale prokuator vajab. See konfiguratsioon tähistab tegelikult andmete varukoopiate kättesaadavust. Levinud valikud on järgmised seadistused: (1) acks=0: 0-le seatud tähendab, et tootja ei pea ootama saadud info kinnitust. Koopia lisatakse kohe pesa puhverile ja loetakse saadetuks. Sel juhul ei ole garantiid, et server on andmed edukalt vastu võtnud, ning konfiguratsiooni uuesti proovimine ei tööta (sest klient ei tea, kas see ebaõnnestus) ning tagasiside nihe on alati seatud -1-le. (2) acks=1: See tähendab, et vähemalt tuleb oodata, kuni juht kirjutab andmed edukalt lokaalsesse logi, kuid mitte seda, et kõik järgijad kirjutaksid edukalt. Sellisel juhul, kui jälgija ei varundata andmeid edukalt ja juht katkestab kõne uuesti, kaob sõnum. (3) acks=all: See tähendab, et juht peab ootama, kuni kõik varukoopiad edukalt logisid kirjutavad, ning see strateegia tagab, et andmed ei kao seni, kuni üks varukoopia säilib. See on kõige tugevam garantii. (4) Võimalikud on ka muud seaded, nagu acks=2, mis nõuavad kindlat arvu acke, kuid seda strateegiat kasutatakse üldiselt harva. | | buffer.memory | pikk | 33554432 | kõrge | Tootjat saab kasutada andmete mälusuuruse vahemällu salvestamiseks. Kui andmed genereeritakse kiiremini kui need maaklerile saadetakse, blokeerib või viskab tootja erandi, mida tähistatakse "block.on.buffer.full".
See seadistus sõltub tootja kasutatava kogu mäluga, kuid see ei ole kindel piirang, kuna mitte kogu tootja kasutatav mälu ei ole vahemällu salvestamiseks. Mõningane lisamälu kasutatakse tihendamiseks (kui tihendamine on kasutusele võetud) ja osa hoolduspäringute jaoks. | | compression.type | string | Ükski | kõrge | Tootja on tihendamise tüüp, mida kasutatakse andmete tihendamiseks. Vaikimisi on pakkimata. Õiged valikuväärtused on null, gzip, snappy. Kompressiooni on kõige parem kasutada partiitöötluseks – mida rohkem sõnumeid töödeldakse partiidena, seda parem on tihendustulemus. | | Kordused | int | 0 | kõrge | Väärtuse seadmine suuremaks kui 0 paneb kliendi saatma andmed uuesti, kui need andmed ebaõnnestuvad. Pane tähele, et need korduskatsed ei erine neist, kus klient saab saatmisvea. Lubab korduskatsetel muuta andmete järjekorda, kui mõlemad sõnumikirjed saadetakse samasse partitsiooni, ebaõnnestub esimene sõnum, teine sõnum ilmub varem kui esimene. | | batch.size | int | 16384 | Keskmine | Produtsent püüab sõnumikirjeid partiiliselt töödelda, et vähendada päringute arvu. See parandab jõudlust kliendi ja serveri vahel. See konfiguratsioon kontrollib partiitöötluse sõnumite vaikimisi baitide arvu. Sõnumibaite, mis on suuremad kui see baitide arv, ei tehta katseid. Maakleritele saadetud päringud sisaldavad mitut partiid, mis sisaldavad ühte päringut iga partitsiooni kohta. Väiksemad partiiväärtused on vähem kasutusel ja võivad vähendada läbilaskevõimet (0 kasutab ainult partiitöötlust). Suuremad partiiväärtused raiskavad rohkem mäluruumi, seega tuleb eraldada mälu konkreetsete partiiväärtuste jaoks. | | client.id | string | | Keskmine | See string saadetakse serverisse, kui taotlus esitatakse. Eesmärk on suuta jälitada päringute allikat, et võimaldada mõnel IP/pordi lubade nimekirjast väljas oleval rakendusel saata infot. See rakendus saab määrata mistahes stringi, sest sellel pole muud funktsionaalset eesmärki kui salvestamine ja jälgimine | | linger.ms | pikk | 0 | Keskmine | Produtsentide grupp koondab kõik sõnumid, mis saabuvad päringu ja saatmise vahel, salvestades eraldi päringute kogumi. Tavaliselt juhtub see ainult siis, kui kirje genereeritakse kiiremini kui saatmiskiirus. Kuid teatud tingimustel soovib klient vähendada taotluste arvu või isegi mõõduka koormuseni. Seda seadistust tehakse väikese viivitusega – st selle asemel, et kirjet kohe saata, ootab tootja kindla viivituse aega, et lubada saata teisi sõnumikirjeid, mida saab partiiseerida. Seda võib pidada sarnaseks algoritmiks TCP Nagle'ile. See seadistus seab partii jaoks kõrgema latentsuspiiri: kui saame partitsiooni batch.size'i, saadab see selle kohe sõltumata sellest seadest, kuid kui saame sõnumi, mille baitide arv on palju väiksem kui sellel seadistusel, peame "viibima" kindla aja, et saada rohkem sõnumeid. See seade on vaikimisi 0, st viivitust pole. Näiteks linger.ms=5 seadistamine vähendab päringute arvu, kuid samal ajal suurendab viivitust 5 ms võrra. | | max.request.size | int | 1028576 | Keskmine | Maksimaalne soovitud baitide arv. See on ka tõhus katvus maksimaalse registreeritud suuruse jaoks. Märkus: Serveril on oma sõnumite kirjete suuruste ülekirjutus, mis erinevad sellest seadest. See seadistus piirab tootjate korraga hulgisaadetavate päringute arvu, et vältida suurt päringute arvu. | | receive.buffer.bytes | int | 32768 | Keskmine | TCP vastuvõtuvahemälu suurus, mida kasutatakse andmete lugemisel | | send.buffer.bytes | int | 131072 | Keskmine | TCP saatmise vahemälu suurus, mida kasutatakse andmete saatmisel | | timeout.ms | int | 30000 | Keskmine | See seadistusvalik kontrollib maksimaalset aega, mille jooksul server ootab jälgijate kinnitust. Kui kinnitatud taotluste arv ei ole selle aja jooksul täidetud, tagastatakse viga. See ajapiirangut mõõdetakse serveri poolel ega sisalda võrgu latentsust, sealhulgas päringuid | | block.on.buffer.full | Boolean | true | madal | Kui meie mäluvahemälu saab otsa, peame lõpetama uute sõnumikirjete vastuvõtmise või viskama vigu. Vaikimisi on see seatud tõele, kuid mõningane blokeerimine ei pruugi olla seda väärt, seega on parem kohe viga teha. See kehtib siis, kui seade on seatud false-le: tootja viskab erandivea: BufferExhaustedException, kui kirje on saadetud ja vahemälu on täis. | | metadata.fetch.timeout.ms | pikk | 60000 | madal | See viitab esmakordsele andmetele mõnede elementide kohta, mille oleme saanud. Elemendid hõlmavad: teemat, hosti, partitsioone. See konfiguratsioon viitab ajale, mis kulub elemendi edukaks lõpetamiseks vastavalt toomisele, vastasel juhul saadetakse kliendile erand. | | metadata.max.age.ms | pikk | 300000 | madal | Aeg mikrosekundites on intervall, mille jooksul sunnime metaandmeid uuendama. Isegi kui me ei näe ühtegi jaotuse juhtkonna muutust. | | metric.reporterid | Nimekiri | [] | madal | Klasside nimekiri, mida kasutatakse mõõdikute mõõtmiseks. MetricReporteri liidese rakendamine võimaldab lisada klasse, mis muutuvad uute mõõdikute genereerimisel. JmxReporter sisaldab alati võimalust JMX statistika registreerimiseks | | metrics.num.samples | int | 2 | madal | Mõõdikute säilitamiseks kasutatavate valimite arv | | metrics.sample.window.ms | pikk | 30000 | madal | Mõõdikusüsteem hoiab konfigureeritavat arvu proove korrigeeritavas akna suuruses. See konfiguratsioon konfigureerib näiteks akna suuruse. Võime hoida kahte proovi 30 sekundi jooksul. Kui aken lahti rullitakse, kustutame ja kirjutame vanima akna ümber | | recoonect.backoff.ms | pikk | 10 | madal | Kui ühendus ebaõnnestub, siis ootamisaeg, kui uuesti ühendume. See väldib korduvaid kliendi taasühendamisi | | retry.backoff.ms | pikk | 100 | madal | Ootamisaeg enne ebaõnnestunud tootmistaotluse uuesti proovimist. Väldi kinni jäämist "saat-ebaõnnestu" surnud tsüklisse.
|
|