Välittäjän konfiguraatiot
| Omaisuus | Laiminlyönti | Kuvaus | | broker.id | | Jokainen välittäjä voidaan tunnistaa ainutlaatuisella ei-negatiivisella kokonaislukutunnisteella; Tätä id:tä voidaan käyttää välittäjän "nimenä", ja sen olemassaolo mahdollistaa välittäjän siirtymisen toiseen isäntään/porttiin ilman, että kuluttajat hämmentyvät. Voit valita minkä tahansa numeron ID:ksi, kunhan ID on yksilöllinen. | | log.dirs | /tmp/kafka-logs | Polku, johon Kafka tallentaa dataa. Tämä polku ei ole yksikäsitteinen, se voi olla useampi, ja polut tarvitsee erottaa pilkuilla; Aina kun uusi osio luodaan, se tehdään polulla, jossa on vähiten osioita. | | Satama | 6667 | palvelin hyväksyy portin, johon asiakas yhdistyy | | zookeeper.connect | nolla | ZooKeeper-yhteysmerkkijonon muoto on: isäntänimi:portti, jossa isäntänimi ja portti ovat solmun isäntä- ja portti ZooKeeper-klusterissa. Jotta voit yhdistää muihin ZooKeeper-solmuun, kun isäntä menee pois, voit luoda useita isäntiä seuraavasti:
hostname1:port1, hostname2:port2, hostname3:port3.
ZooKeeper mahdollistaa "chroot"-polun lisäämisen, jolla kaikki kafka-tiedot klusterissa tallennetaan tietylle polulle. Kun useat Kafka-klusterit tai muut sovellukset käyttävät samaa ZooKeeper-klusteria, voit käyttää tätä menetelmää datan tallennuspolun asettamiseen. Tämä voidaan toteuttaa muotoilemalla yhteysmerkkijono näin: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path Tämä asetus tallentaa kaiken kafka-klusteridatan /chroot/path -polun alle. Huomaa, että ennen välittäjän aloittamista sinun täytyy luoda tämä polku, ja kuluttajien on käytettävä samaa yhteysmuotoa. | | message.max.tavut | 1000000 | Palvelin vastaanottamien viestien maksimikoko. On tärkeää, että kuluttajan ja tuottajan asetukset tämän ominaisuuden suhteen on synkronoitava, muuten tuottajan julkaisema viesti on kuluttajalle liian suuri. | | num.network.threads | 3 | Palvelimen käyttämien verkkosäikeiden määrä verkkopyyntöjen käsittelyyn; Yleensä tätä ominaisuutta ei tarvitse vaihtaa. | | num.io.threads | 8 | Palvelimen käyttämien I/O-säikeiden määrä pyyntöjen käsittelyyn; Säikeiden määrän tulisi olla vähintään yhtä suuri kuin kiintolevyjen lukumäärä. | | background.threads | 4 | Taustakäsittelyyn, kuten tiedostojen poistoon, käytettyjen säikeiden määrä; Sinun ei tarvitse muuttaa tätä ominaisuutta. | | queued.max.requests | 500 | Suurin määrä pyyntöjä, jotka voidaan jonottaa I/O-säikeen käsittelyyn ennen kuin verkkosäie lakkaa lukemasta uusia pyyntöjä. | | host.name | nolla | välittäjän isäntänimi; Jos isäntänimi on jo asetettu, välittäjä on sidottu vain tähän osoitteeseen; Jos asetusta ei ole, se sitoutuu kaikkiin rajapintoihin ja julkaisee yhden kopion ZK:lle | | advertised.host.name | nolla | Jos se on asetettu, se lähetetään tuottajille, kuluttajille ja muille välittäjille välittäjän isäntänimenä | | advertised.port | nolla | Tämä portti annetaan tuottajille, kuluttajille ja muille välittäjille, ja sitä käytetään yhteyden muodostamiseen; Se tarvitsee asettaa vain, jos varsinainen portti ja se portti, jonka palvelimen täytyy sitoa, ovat erilaiset. | | socket.send.buffer.bytes | 100 * 1024 | SO_SNDBUFF Välimuistikoko, jota palvelin käyttää socket-yhteyksien tekemiseen | | socket.receive.buffer.bytes | 100 * 1024 | SO_RCVBUFF välimuistikoko, jota palvelin käyttää liittääkseen socketeihin | | socket.request.max.tavut | 100 * 1024 * 1024 | Palvelimen sallima enimmäispyyntökoko; Tämä estää palvelinten ylivuodot, jotka pitäisi olla pienempiä kuin Java-keon koko | | num.partitions | 1 | Jos osioiden määrää ei anneta aihetta luodessa, tämä luku on aiheen oletusosioiden määrä. | | log.segment.bytes | 1014*1024*1024 | Aiheosion lokit tallennetaan moniin tiedostoihin tiettyyn hakemistoon, joka jakaa osion lokit segmentteihin; Tämä attribuutti on kunkin tiedoston maksimikoko; Kun ulottuvuudet saavuttavat tämän arvon, luodaan uusi tiedosto. Tämän asetuksen voi kumota kunkin aiheen perusta. Näkymä Hyperlinkin kirjautuminen on näkyvissä. | | log.roll.hours | 24 * 7 | Vaikka tiedosto ei saavuttaisi log.segment.bytes, uusi tiedosto luodaan aina, kun tiedoston luontiaika saavuttaa tämän ominaisuuden. Tämä asetus voidaan myös ohittaa aihetasoisilla asetuksilla; NäkymäHyperlinkin kirjautuminen on näkyvissä. | | log.cleanup.policy | Poista | | | log.retention.minutes ja log.retention.hours | 7 päivää | Aika, jolloin jokainen lokitiedosto tallennettiin ennen poistamista. Oletustietojen säästöaika on sama kaikissa aiheissa. log.retention.minutes ja log.retention.bytes käytetään molemmat lokitiedostojen poiston asettamiseen, riippumatta siitä, mikä ominaisuus on ylikuormitettu. Tämä ominaisuusasetus voidaan ohittaa, kun aihe on käytännössä asetettu. NäkymäHyperlinkin kirjautuminen on näkyvissä. | | log.retention.bytes | -1 | Kunkin aiheen alla kunkin osion tallentaman kokonaisdatan määrä; Huomaa, että tämä on yläraja per osio, joten tämä luku kerrottuna osioiden määrällä on kokonaismäärä tallennettua dataa aihetta kohden. Huomaa myös: Jos sekä log.retention.tunnit että log.retention.tavut on asetettu, jommankumman rajan ylittäminen johtaa segmenttitiedoston poistamiseen. Huomaa, että tämä asetus voidaan kumota jokaisella aiheella. NäkymäHyperlinkin kirjautuminen on näkyvissä. | | log.retention.check.interval.ms | 5 minuuttia | Tarkista lokisegmentoitujen tiedostojen välinen väli varmistaaksesi, täyttävätkö tiedostojen attribuutit poistovaatimukset. | | log.cleaner.enable | false | Kun tämä ominaisuus asetetaan epätosi, se poistetaan, kun loki on tallennettu maksimiajaksi tai koolle. Jos se asetetaan tosi, se tapahtuu, kun tallennusattribuutti saavuttaa ylärajanHyperlinkin kirjautuminen on näkyvissä.。 | | log.cleaner.threads | 1 | Logaritin pakkausta suorittavien säikeiden määrä | | log.cleaner.io.max.tavut.per sekunti | Ei lainkaan | Suurin määrä I/O-tiedostoja, joita tukinpuhdistajalla voi olla lokien tiivistämisen yhteydessä. Tämä asetus rajoittaa puhdistusainetta, jotta aktiiviset pyyntöpalvelut eivät häirinnä. | | log.cleaner.io.buffer.size | 500*1024*1024 | Log Cleaner indeksoi lokit puhdistusprosessin aikana ja pienentää käytetyn välimuistin kokoa. Parasta on asettaa se suureksi, jotta muistia on riittävästi. | | log.cleaner.io.buffer.load.factor | 512*1024 | I/O-palan koko, joka vaaditaan puun puhdistukseen. Sinun ei tarvitse muuttaa tätä asetusta. | | log.cleaner.io.buffer.load.factor | 0.9 | lokien puhdistuksessa käytetyn hajautustaulun kuormituskerroin; Sinun ei tarvitse muuttaa tätä vaihtoehtoa. | | log.cleaner.backoff.ms | 15000 | Aikaväli, jonka aikana loki siivotaan, suoritetaan | | log.cleaner.min.cleanable.ratio | 0.5 | Tämä konfiguraatio säätelee, kuinka usein tukin puristin yrittää siivota tukkeja (oletettunaHyperlinkin kirjautuminen on näkyvissä.on auki). Oletuksena vältä puhdistamasta yli 50 % tukkeista. Tämä suhde liittyy varalokin käyttämään maksimitilaan (50 % lokkeista on puristettu 50 %:iin). Korkeampi hinta tarkoittaa vähemmän jätettä ja enemmän tilaa voidaan raivata tehokkaammin. Tämä asetus voidaan ohittaa jokaisessa aiheympäristössä. NäkymäHyperlinkin kirjautuminen on näkyvissä.。 | | log.cleaner.delete.retention.ms | 1 päivä | säilytysaika; Maksimiaika puristettujen lokkien säilyttämiseen; Se on myös maksimiaika, jonka asiakas käyttää viestejä, ja ero log.retention.minutes -tiedostojen välillä on se, että toinen hallitsee pakkaamatonta dataa ja toinen pakattua dataa, joka ylikirjoitetaan määritellyn ajan kuluessa aiheen luomisen yhteydessä. | | log.index.size.max.tavut | 10*1024*1024 | Suurin koko logaritmisegmenttiä kohden. Huomaa, että jos logaritin koko saavuttaa tämän arvon, uusi logaritmisegmentti täytyy generoida, vaikka koko ei ylittäisi log.segment.tavujen rajaa. | | log.index.interval.bytes | 4096 | Kun suoritat noutoa, sinun täytyy skannata lähin siirtymä tietyllä määrällä tilaa, mitä suurempi asetuksen, sen parempi, käytä yleensä oletusarvoa | | log.flush.interval.messages | Long.MaxValue | lokitiedosto "synkronoituu" levylle ennen viestien keräämistä. Koska levyn IO-toiminnot ovat hidaita, mutta myös välttämättömiä keinoja "datan luotettavuudelle", tarkista, tarvitaanko kiintolevylle kovettumiseen tarvittava aikaväli. Jos tämä arvo on liian suuri, se johtaa liian pitkään "sync"-aikaan (IO-esto), jos tämä arvo on liian pieni, se johtaa pitkään "fsync"-aikaan (IO-esto), jos tämä arvo on liian pieni, se johtaa suureen määrään "sync"-aikoja, mikä tarkoittaa, että koko asiakaspyynnöllä on tietty viive, ja fyysisen palvelimen vikaantuminen johtaa viestien menetykseen ilman fsynciä. | | log.flush.scheduler.interval.ms | Long.MaxValue | Tarkista, tarvitaanko fsync-intervalleja | | log.flush.interval.ms | Long.MaxValue | Tätä lukua käytetään "fsync"-aikavälin hallintaan, jos viestien määrä ei koskaan saavuta levylle vakiintuneita viestejä, mutta viimeisen levyn synkronoinnin aikaväli saavuttaa kynnyksen, myös levyn synkronointi käynnistyy. | | log.delete.delay.ms | 60000 | Tiedoston tyhjentämisen jälkeistä säilytysaikaa indeksissä ei yleensä tarvitse muuttaa | | auto.create.topics.enable | true | Sallitaanko aiheiden automaattinen luominen. Jos se pitää paikkansa, se luo automaattisesti aiheen, jota ei ole olemassa, kun tuottamista tai noutoa ei ole olemassa. Muussa tapauksessa sinun täytyy käyttää komentoriviä aiheen luomiseen | | controller.socket.timeout.ms | 30000 | Socketin aikakatkaisuaika, kun osion hallintaohjain tekee varmuuskopion. | | controller.message.queue.size | Int.MaxValue | Controller-to-broker-channles | | default.replication.factor | 1 | Varmuuskopioiden oletusmäärä viittaa vain automaattisesti luotuihin aiheisiin | | replica.lag.time.max.ms | 10000 | Jos seuraaja ei lähetä noutopyyntöä tämän ajan kuluessa, johtaja poistaa seuraajan ISR:stä ja katsoo seuraajan hirtettäväksi | | replica.lag.max.viestit | 4000 | Jos replikassa on enemmän kuin tämä määrä varaamattomia, johtaja poistaa seuraajan ja pitää seuraajan hirtettynä | | replica.socket.timeout.ms | 30*1000 | Leader-aikakatkaisu socket-verkkopyyntöihin varmuuskopioidessa dataa | | replica.socket.receive.buffer.bytes | 64*1024 | Socketin vastaanottopuskuri, kun lähetetään verkkopyyntö johtajalle varmuuskopioinnin aikana | | replica.fetch.max.tavua | 1024*1024 | Jokaisen noudon maksimiarvo varmuuskopiointihetkellä | | replica.fetch.min.bytes | 500 | Maksimiodotusaika tiedon saavuttamiselle johtajalle, kun johtaja tekee varmuuskopiointipyynnön | | replica.fetch.min.bytes | 1 | Vastauksen pienin koko jokaisen noudon jälkeen peruutuksen yhteydessä | | num.replica.fetchers | 1 | Säikeiden määrä, jotka varmuuskopioivat johtajan dataa | | replica.high.watermark.checkpoint.interval.ms | 5000 | Jokainen replika tarkistaa, kuinka usein korkein vedenpinta kuivuu | | fetch.purgatory.purge.interval.requests | 1000 | Nouto pyytää puhdistusväliä | | producer.purgatory.purge.interval.requests | 1000 | tuottaja pyytää puhdistusväliä | | zookeeper.session.timeout.ms | 6000 | Eläintarhanhoitajan session aikalisä. | | zookeeper.connection.timeout.ms | 6000 | Maksimiaika, jonka asiakas odottaa yhteyden muodostamista eläintarhanhoitajaan | | zookeeper.sync.time.ms | 2000 | ZK:n seuraaja on jäljessä ZK:n johtajasta pisimpään | | controlled.shutdown.enable | true | Onko välittäjän sulkemista mahdollista hallita. Jos mahdollista, välittäjä voi siirtää kaikki johtajat toisille välittäjille ennen sulkemista. Tämä vähentää poissaoloa sammutusprosessin aikana. | | controlled.shutdown.max.uusintoja | 3 | Käskyjen määrä, jotka voivat onnistuneesti suorittaa sammutuksen ennen epätäydellistä sammutusta. | | controlled.shutdown.retry.backoff.ms | 5000 | Peruutusaika sulkujen välillä | | auto.leader.rebalance.enable | true | Jos näin on, controlleri tasapainottaa automaattisesti välittäjien johtajuuden osioiden välillä | | leader.epätasapaino.per.välittäjä.prosenttiosuus | 10 | Jokaisen välittäjän sallima maksimiepätasapainosuhde | | leader.epäbalance.check.interval.seconds | 300 | Tarkista johtajan epätasapainon tiheys | | offset.metadata.max.tavut | 4096 | Mahdollistaa asiakkaiden tallentaa maksimimäärän offsettejaan | | max.connections.per.ip | Int.MaxValue | Välittäjää kohden voidaan tehdä maksimiyhteysmäärä kuhunkin IP-osoitteeseen | | max.connections.per.ip.overrides | | Oletusyhteyden maksimikattavuus IP- tai isäntänimeä kohden | | connections.max.idle.ms | 600000 | Aikakatkaisu tyhjille yhteyksille | | log.roll.jitter. {ms,tunnit} | 0 | Suurin määrä tärinää, joka on abstraktioitu logRollTimeMillisistä | | num.recovery.threads.per.data.dir | 1 | Säikeiden määrä, joita kukin tietohakemisto käyttää palautuksen kirjaamiseen | | unclean.leader.election.enable | true | Ilmaisee, onko mahdollista käyttää ei-replikaatio-asetusta ISR:ssä johtajana | | delete.topic.enable | false | Mahdollisuus poistaa aiheita | | offsets.topic.num.partitions | 50 | Offset comset commit-aiheen osioiden lukumäärä. Koska tämän muuttamista käyttöönoton jälkeen ei tällä hetkellä tueta, suosittelemme käyttämään korkeampaa asetusta tuotannossa (esim. 100-200). | | offsets.topic.retention.minutes | 1440 | Offsetit, jotka ovat olleet olemassa pidempään kuin tämä aikaraja, merkitään poistoa odottaviksi | | offsets.retention.check.interval.ms | 600000 | Offset-hallinta tarkistaa vanhentuneiden siirtojen esiintymistiheyden | | offsets.topic.replication.factor | 3 | Aiheen varakappaleiden määrä. On suositeltavaa asettaa korkeampia lukuja, jotta saatavuuden saatavuus takaa | | offset.topic.segment.bytes | 104857600 | Sivuttavat aiheen. | | offsets.load.buffer.size | 5242880 | Tämä asetus liittyy erän kokoon ja sitä käytetään offset-segmentin lukemisessa. | | offsets.commit.required.acks | -1 | Vahvistusten määrä täytyy asettaa ennen kuin offset-sitoutuminen on hyväksyttävää, eikä sitä yleensä tarvitse muuttaa |
| Omaisuus | Laiminlyönti | Palvelimen oletusominaisuus | Kuvaus | | siivous.politiikka | Poista | log.cleanup.policy | Joko "delete" tai "compact"; Tämä merkkijono kertoo, miten vanhaa logaritmiosaa hyödynnetään; Oletusmenetelmä ("poista") hylkää vanhan osan, kun kierrätysaika tai kokoraja saavutetaan. "kompakti" puristaa lokit | | delete.retention.ms | 86400000 (24 tuntia) | log.cleaner.delete.retention.ms | Ero log.retention.minutes -tiedostojen välillä on se, että toinen ohjaa pakkaamatonta dataa ja toinen pakattua dataa. Tämä konfiguraatio voidaan ohittaa kiinnitysparametreilla, kun aihe luodaan | | flush.messages | Ei lainkaan | log.flush.interval.messages | Tämä konfiguraatio määrittelee aikavälin fsync-lokien pakottamiseksi. Esimerkiksi, jos tämä asetus on asetettu arvoon 1, fsync vaaditaan jokaisen viestin jälkeen, ja jos se on asetettu arvoon 5, fsync vaaditaan jokaista viittä viestiä kohden. Yleisesti suositellaan, ettet aseta tätä arvoa. Tämän parametrin asettaminen vaatii tarvittavan kompromissin "datan luotettavuuden" ja "suorituskyvyn" välillä. Jos tämä arvo on liian suuri, se aiheuttaa pitkän "fsync"-ajan joka kerta (IO-esto), ja jos tämä arvo on liian pieni, se johtaa suureen määrään "fsynciä", mikä tarkoittaa myös tiettyä viivettä koko asiakaspyynnössä. Fyysinen palvelimen vika aiheuttaa viestien katoamisen ilman fsynciä. | | flush.ms | Ei lainkaan | log.flush.interval.ms | Tätä konfiguraatiota käytetään kiinnittämään aikaväli fsync-lokien pakottamisen välillä levylle; Esimerkiksi, jos asetukset ovat 1000, fsync vaaditaan joka 1000 ms välein. Tätä vaihtoehtoa ei yleensä suositella | | index.interval.bytes | 4096 | log.index.interval.bytes | Oletusasetus varmistaa, että viestiin lisätään indeksi joka 4096 tavun välein, ja lisää indeksejä lähentää lukuviestiä, mutta indeksin koko kasvaa. Tätä vaihtoehtoa ei yleensä vaadita | | max.message.bytes | 1000000 | max.message.bytes | Kafka-lisäviestin maksimikoko. Huomaa, että jos kasvatat tätä kokoa, sinun täytyy myös kasvattaa kuluttajan noutokokoa, jotta kuluttaja voi hakea viestejä näihin maksimikokoihin. | | min.puhdistettavissa.likainen.suhde | 0.5 | min.puhdistettavissa.likainen.suhde | Tämä asetus säätelee, kuinka usein tukkikompressori yrittää puhdistaa tukit. Oletuksena välttää yli 50 % pakkausasteen lokit. Tämä suhde välttää suurimman tilan tuhlauksen | | min.insync.replicas | 1 | min.insync.replicas | Kun tuottaja asetetaan request.required.acks -1:een, min.insync.replicas määrittää minimimäärän replikoita (jokaisen repica-kirjoituksen on oltava onnistunut), ja jos tätä lukua ei saavuteta, tuottaja tuottaa poikkeuksen. | | retention.bytes | Ei lainkaan | log.retention.bytes | Jos käytät "poista"-säilytyskäytäntöä, tämä konfiguraatio viittaa lokin maksimikokoon ennen poistamista. Oletuksena kokorajoitusta ei ole, vaan vain aikaraja | | retention.ms | 7 päivää | log.retention.minutes | Jos käytät "poista"-säilytyskäytäntöä, tämä asetus viittaa aikaan, jolloin loki tallennettiin ennen poistolokia. | | segment.tavut | 1GB | log.segment.bytes | Kafkassa logarit tallennetaan lohkoihin, ja tämä konfiguraatio viittaa logaritin kokoon, joka on jaettu lohkoihin | | segment.index.bytes | 10MB | log.index.size.max.tavut | Tämä konfiguraatio on noin indeksitiedoston koko, joka on kartoitettu offsettien ja tiedostojen sijaintien välillä; Tätä kokoonpanoa ei yleensä tarvitse muuttaa | | segment.ms | 7 päivää | log.roll.hours | Vaikka lokilohko-tiedosto ei saavuttaisi poistamisen tai pakkaamisen kokoa, kun lokiaika saavuttaa tämän ylärajan, pakotetaan uusi lokilohko-tiedosto | | segment.jitter.ms | 0 | log.roll.jitter. {ms,tunnit} | Suurin jitter, joka vähennetään logRollTimeMillisistä. |
Kuluttajakonfiguraatiot
| Omaisuus | Laiminlyönti | Kuvaus | | group.id | | Merkkijono, joka yksilöi ryhmän, jossa kuluttajaprosessi sijaitsee, ja jos sama ryhmätunnus on asetettu, se tarkoittaa, että nämä prosessit kuuluvat samaan kuluttajaryhmään | | zookeeper.connect | | Määritä Zookeeper-yhteyden merkkijono, muoto on hostname:port, tässä isäntä ja portti ovat sekä Zookeeper-palvelimen isäntä että portti. Jotta yhteys ei menetetä Zookeeper-koneen hajoamisen jälkeen, voit määrittää useita isäntänimi:portteja pilkkujen avulla erotteluna: hostname1:port1,hostname2:port2,hostname3:port3 Voit lisätä ZooKeeperin chroot-polun ZooKeeper-yhteysmerkkijonoon, jota käytetään oman datan tallentamiseen, seuraavasti: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path | | consumer.id | nolla | Asetusta ei tarvita, ja se generoidaan yleensä automaattisesti | | socket.timeout.ms | 30*100 | Aikakatkaisurajoitukset verkkopyynnöille. Todellinen aikakatkaisu on max.fetch.wait+socket.timeout.ms | | socket.receive.buffer.bytes | 64*1024 | socketia käytetään verkkopyyntöjen välimuistikoon vastaanottamiseen | | fetch.message.max.tavut | 1024*1024 | Maksimimäärä tavuja per noutoviesti per hakupyyntö. Nämä tavut valvotaan kunkin osion muistissa, joten tämä asetus ohjaa käyttäjän käyttämää muistimäärää. Noutopyynnön koko on oltava vähintään yhtä suuri kuin palvelimen sallima maksimiviestikoko, muuten tuottajan lähettämän viestin koko on suurempi kuin kuluttajan kuluttama koko. | | num.consumer.fetchers | 1 | Hakusäikeiden määrä hakea dataa varten | | auto.commit.enable | true | Jos tämä pitää paikkansa, kuluttajan hakeman viestin siirtymä synkronoidaan automaattisesti eläintarhanhoitajan kanssa. Tätä sitoutumis-offsetia käyttää uusi kuluttaja, kun prosessi keskeytetään | | auto.commit.interval.ms | 60*1000 | Kuluttajan lähettämisnopeus eläintarhanhoitajalle on sekunneissa | | queued.max.message.chunks | 2 | Suurin määrä viestejä, joita käytetään välimuistiin kulutusta varten. Jokaisen lohkon täytyy olla sama kuin fetch.message.max.tavu | | rebalance.max.uusintoja | 4 | Kun uusi kuluttaja lisätään kuluttajaryhmään, kuluttajaryhmä pyrkii tasapainottamaan kullekin kuluttajalle varoitettujen osioiden määrää. Jos kuluttajan perintä muuttuu, tämä uudelleentasapainotus epäonnistuu ja muuttuu uudelleen, kun allokaatio suoritetaan | | fetch.min.bytes | 1 | Vähimmäismäärä tavuja, jotka palvelimen tulisi palauttaa jokaisen noutopyynnön yhteydessä. Jos dataa ei palauteta tarpeeksi, pyyntö odottaa, kunnes tarpeeksi dataa palautetaan. | | fetch.wait.max.ms | 100 | Jos fetch.min.bytes ei ole tarpeeksi dataa, tämä konfiguraatio tarkoittaa maksimiaikaa, jonka palvelin estää ennen noutopyyntöön vastaamista. | | rebalance.backoff.ms | 2000 | Peruutusaika ennen Reblancen uudelleenyrittämistä | | refresh.leader.backoff.ms | 200 | On aika perääntyä ennen kuin yritetään selvittää, onko jaon johtaja menettänyt johtajuutensa | | auto.offset.reset | Suurin | Jos zookeeperissa ei ole alustettua siirtymää, jos siirtymä on vastaus seuraavaan arvoon: Pienin: automaattinen nollaus pienimmälle offsetille suurin: automaattinen nollaus siirtymä suurimman siirtymän tasolle kaikki muu: heittää poikkeuksen kuluttajalle | | consumer.timeout.ms | -1 | Jos viestiä ei ole saatavilla, vaikka odottaisin tietyn ajan, otetaan aikalisäpoikkeus | | exclude.internal.topics | true | Pitäisikö sisäisistä aiheista kertoa viestejä kuluttajille | | paritition.assignment.strategy | Levinneisyys | Valitse politiikka osioiden määrittämiseen kuluttajavirralle, vaihtoehtoisesti range, roundrobin | | client.id | Group ID -arvo | on käyttäjäkohtainen merkkijono, joka auttaa seuraamaan kutsuja jokaisessa pyynnössä. Sen tulisi loogisesti vahvistaa pyyntö syntynyt sovellus | | zookeeper.session.timeout.ms | 6000 | Aikalisärajat eläintarhanhoitajan istunnoille. Jos kuluttaja ei lähetä sydämenlyöntiviestiä eläintarhanhoitajalle tänä aikana, se katsotaan lukituksi ja reblance syntyy | | zookeeper.connection.timeout.ms | 6000 | Maksimiodotusaika asiakkaan eläintarhanhoitaja-yhteyden muodostamiseksi | | zookeeper.sync.time.ms | 2000 | ZK:n seuraajat voivat jäädä ZK:n johtajan jälkeen maksimiajan ajan | | offsets.storage | Eläintarhanhoitaja | Paikkoja, joissa säilytetään offsetteja: eläintarhanhoitaja tai kafka | | offset.channel.backoff.ms | 1000 | Peruutusaika siirtymien kanavalle uudelleen yhdistämiseen tai epäonnistuneen offsetin haku-/commit-pyynnön uudelleenyrittämiseen | | offsets.channel.socket.timeout.ms | 10000 | Socketin aikakatkaisun raja nouto-/commit-pyyntövastaukseen offsetin lukemisen yhteydessä. Tätä aikakatkaisua käyttää consumerMetadata-pyyntö offset-hallinnan pyytämiseen | | offsets.commit.max.uusintoja | 5 | Kuinka monta kertaa offset-sitoutumista yritettiin uudelleen. Tämä uudelleenyritys koskee vain offset-committeja sammutuksen välillä. Hän | | dual.commit.enabled | true | Jos käytät "kafkaa" offsets.storage-tilassa, voit sitoutua offsetin eläintarhanhoitajaan kahdesti (ja kerran kafkaan). Tämä on välttämätöntä, kun siirrytään eläintarhanhoitajapohjaisesta offset-varastoinnista kafka-pohjaiseen offset-varastointiin. Jokaiselle kuluttajaryhmälle on turvallista poistaa tämä vaihtoehto käytöstä, kun migraatio on valmis | | partition.assignment.strategy | Levinneisyys | Valitse "range"- ja "roundrobin"-politiikkojen välillä kuluttajatietovirtojen osioiden määrittämiseen; Pyöreä osio-allokaattori varaa kaikki saatavilla olevat osiot sekä kaikki saatavilla olevat kuluttajasäikeet. Se määrittää osion silmukan kuluttajasäikeeseen. Jos kaikki kuluttaja-instanssit on tilattu määrättyyn, osiot jaetaan deterministisiin jakaumiin. Round-robin -allokointistrategia on mahdollinen vain, jos seuraavat ehdot täyttyvät: (1) Jokaisella aiheella on sama määrä tietovirtoja kuluttajavahvuutta kohden. (2) Tilattujen aiheiden kokoelma määritellään jokaiselle kuluttaja-instanssille kuluttajaryhmässä. |
Tuottajakonfiguraatiot
| Omaisuus | Laiminlyönti | Kuvaus | | metadata.broker.list | | Tarjoa omaa bootstrappaamista. Tuottajaa käytetään vain metatietojen (aiheet, osiot, replikat) keräämiseen. Varsinaisen datan lähettämiseen tarkoitettu socket-yhteys muodostetaan palautettujen metatietojen perusteella. Formaatti on: host1:port1,host2:port2 Tämä lista voi olla välittäjien alalista tai VIP, joka ohjaa välittäjiä | | request.required.acks | 0 | Tämä konfiguraatio on kuittausarvo, joka kertoo, milloin tuotepyyntö katsotaan valmiiksi. Erityisesti se, kuinka moni muu välittäjä on toimittanut tietoja lokitietoihinsa ja vahvistanut ne johtajalleen. Tyypillisiä arvoja ovat: 0: Tarkoittaa, että tuottaja ei koskaan odota välittäjän vahvistusta (sama käytös kuin 0.7). Tämä vaihtoehto tarjoaa vähiten viivettä, mutta samalla suurimman riskin (koska data menetetään, kun palvelin kaatuu). 1: Tarkoittaa, että johtajareplika on saanut tiedon vahvistuksen. Tällä vaihtoehdolla on pieni viive ja se varmistaa, että palvelin vahvistaa vastaanoton. -1: Tuottaja saa vahvistuksen, että kaikki synkronoidut kopiot ovat vastaanottaneet dataa. Viive on suurin, mutta tämä menetelmä ei täysin poista viestien katoamisen riskiä, koska synkronoitujen replikoiden määrä voi olla 1. Jos haluat varmistaa, että jotkut replikat vastaanottavat dataa, sinun tulisi asettaa aihetason asetuksissa vaihtoehto min.insync.replicas. Lue suunnitteludokumentaatio saadaksesi syvällisempää keskustelua. | | request.timeout.ms | 10000 | Välittäjä pyrkii parhaansa mukaan toteuttamaan request.required.acks -vaatimuksen, muuten asiakkaalle lähetetään virhe | | producer.type | Synkronointi | Tämä asetus määrittää, lähetetäänkö viesti asynkronisesti taustasäikeessä. Oikeat arvot: (1) asynkroninen: Asynkroninen lähetys (2) synkronointi: Synkronoitu lähetys Asettamalla tuottajan asynkroniseksi voimme käsitellä pyyntöjä erissä (mikä on hyvä nopeammalle läpimenolle), mutta tämä luo myös mahdollisuuden, että asiakaskone menettää lähettämätöntä dataa | | serializer.class | kafka.serializer.DefaultEncoder | Viestin sarjallisuuskategoria. Oletuskooderi syöttää yhden tavun[] ja palauttaa saman tavun[] | | key.serializer.class | | Sarjoittamiskurssi avainsanoille. Jos tätä ei anneta, oletuksena on vastata viestiä | | partitioner.class | kafka.producer.DefaultPartitioner | Partitioner-luokka viestien jakamiseen alaaiheiden kesken. Oletusosio perustuu avaimen hajautustaulukkoon | | compression.codec | ei lainkaan | Tämä parametri voi asettaa koodekin datan pakkaamista varten, joka voidaan valita "none", "gzip", "snappy". | | compressed.topics | nolla | Tätä parametria voidaan käyttää määrittämään, ovatko tietyt aiheet pakattuja. Jos pakattu koodekki on jokin muu kuin NoCompressCodec, nämä koodekit sovelletaan määritettyjen aiheiden dataan. Jos pakattujen aiheiden lista on tyhjä, sovella tiettyä pakattua koodekkia kaikkiin aiheisiin. Jos pakattu koodekki on NoCompressionCodec, pakkaus ei ole saatavilla kaikille aiheille. | | message.send.max.uusintoja | 3 | Tämä parametri saa tuottajan automaattisesti yrittämään uudelleen epäonnistuneita lähetyspyyntöjä. Tämä parametri määrittää kokeilujen määrän. Huomautus: Ei-0-arvon asettaminen aiheuttaa tiettyjen verkkovirheiden toistumisen: lähettämisen ja kuittauksen menetyksen | | retry.backoff.ms | 100 | Ennen jokaista uusintayritystä tuottaja päivittää aiheen metatiedot nähdäkseen, onko uusi johtaja nimetty. Koska johtajan valinta vie hieman aikaa, tämä vaihtoehto määrittää, kuinka kauan tuottajan täytyy odottaa ennen metatietojen päivittämistä. | | topic.metadata.refresh.interval.ms | 600*1000 | Tuottaja yleensä päivittää aiheen metatiedot joissain vikatilanteissa (osion puuttuminen, johtaja ei käytettävissä jne.). Hän käy läpi normaalin kierron. Jos asetat arvon negatiiviseksi, metatiedot päivittyvät vain, jos se epäonnistuu. Jos asetukset ovat 0, metatiedot päivittyvät jokaisen viestin jälkeen (tätä vaihtoehtoa ei suositella, koska järjestelmä kuluttaa liikaa). Tärkeää: Päivitykset tapahtuvat vasta viestin lähettämisen jälkeen, joten jos tuottaja ei koskaan lähetä viestiä, metatietoja ei päivitetä. | | queue.buffering.max.ms | 5000 | Maksimiaika, jonka aikana käyttäjä välimuistittaa dataa, kun asynkronista tilaa käytetään. Esimerkiksi, jos viesti on asetettu 100:aan, 100 ms:n sisällä olevat viestit käsitellään erissä. Tämä parantaa läpimenoa, mutta lisää viivettä välimuistin vuoksi. | | queue.buffering.max.viestit | 10000 | Asynkronisessa tilassa on estettävä enintään lähettämättömien viestien määrä, jotka voidaan välimuistittaa jonoon ennen tuottajaa, tai muuten data on menetettävä | | batch.num.messages | 200 | Asynkronisessa tilassa voit käsitellä suurimman määrän viestejä eräajoina. Tai viestien määrä on saapunut tähän verkossa tai queue.buffer.max.ms on saapunut, ja tuottaja käsittelee ne | | send.buffer.bytes | 100*1024 | Socketin kirjoitusvälimuistin koko | | client.id | “” | Tämä asiakastunnus on käyttäjäkohtainen merkkijono, joka sisältyy jokaiseen pyyntöön puhelun seuraamiseksi, ja hänen pitäisi loogisesti pystyä varmistamaan, että sovellus on tehnyt pyynnön. |
Tuottajakonfiguraatiot
| Nimi | Tyyppi | Laiminlyönti | Merkitys | Kuvaus | | boostrap.servers | Lista | | korkea | Isäntä/porttiryhmä muodostaakseen yhteyden kafka-klusteriin. Data ladataan tasaisesti kaikille palvelimille, riippumatta siitä, mikä palvelin on varattu käynnistyskäyttöön. Tämä lista vaikuttaa vain alustettuihin isäntiin (joita käytetään kaikkien palvelimien löytämiseen). Tämä listamuoto:
host1:port1,host2:port2,... Koska näitä palvelimia käytetään vain yhteyksien alustamiseen ja klusterin kaikkien jäsenyyksien löytämiseen (jotka voivat muuttua dynaamisesti), tämän listan ei tarvitse sisältää kaikkia palvelimia (saatat haluta useamman palvelimen, vaikka tässä tapauksessa yksi palvelin voi olla poissa käytöstä). Jos tässä listassa ei ole palvelinta, datan lähettäminen epäonnistuu, kunnes lista on saatavilla. | | acks | Merkkijono | 1 | korkea | Tuottaja tarvitsee palvelimelta signaalin vastaanoton vahvistamiseksi datan vastaanoton jälkeen, ja tämä konfiguraatio tarkoittaa, kuinka monta tällaista kuittaussignaalia välittäjä tarvitsee. Tämä kokoonpano kuvaa itse asiassa varmuuskopioiden saatavuutta. Seuraavat asetukset ovat yleisiä vaihtoehtoja: (1) acks=0: Asetettu arvoon 0 tarkoittaa, että tuottajan ei tarvitse odottaa vastaanotetun tiedon vahvistusta. Replika lisätään välittömästi socket-puskuriin ja katsotaan lähetetyksi. Tässä tapauksessa ei ole takeita siitä, että palvelin on vastaanottanut datan onnistuneesti, ja konfiguraation uudelleenyritys ei toimi (koska asiakas ei tiedä, epäonnistuiko se) ja palautteen siirtymä asetetaan aina -1:een. (2) acks=1: Tämä tarkoittaa, että odotetaan ainakin johtajan onnistuneen datan kirjoittamista paikalliseen lokiin, mutta ei sitä, että kaikki seuraajat kirjoittavat onnistuneesti. Tässä tapauksessa, jos seuraaja ei onnistu varmuuskopioimaan dataa ja johtaja lopettaa puhelun uudelleen, viesti katoaa. (3) acks=all: Tämä tarkoittaa, että johtajan täytyy odottaa, että kaikki varmuuskopiot onnistuvat lokien kirjoittamiseen, ja tämä strategia varmistaa, ettei data katoa niin kauan kuin yksi varmuuskopio säilyy. Tämä on vahvin takuu. (4) Myös muita asetuksia, kuten acks=2, on mahdollista, mikä vaatii tietyn määrän ackeja, mutta tätä strategiaa käytetään yleensä harvoin. | | buffer.memory | pitkä | 33554432 | korkea | Tuottajaa voidaan käyttää datan muistikoon välimuistiin. Jos data tuotetaan nopeammin kuin se lähetetään välittäjälle, tuottaja estää tai heittää poikkeuksen, joka merkitään "block.on.buffer.full".
Tämä asetus liittyy tuottajan käyttämään kokonaismuistiin, mutta se ei ole kova raja, sillä kaikki tuottajan käyttämä muisti ei ole välimuistissa. Jonkin verran lisämuistia käytetään pakkaukseen (jos pakkaus otetaan käyttöön), ja osa ylläpitopyyntöihin. | | compression.type | Merkkijono | ei lainkaan | korkea | tuottaja on pakkaustyyppi, jota käytetään datan pakkaamiseen. Oletuksena on pakkaamaton. Oikeat vaihtoehtojen arvot ovat nolla, gzip, snappy. Pakkausta käytetään parhaiten eräajoissa, mitä enemmän viestejä käsitellään erissä, sitä parempi pakkaussuorituskyky. | | Uusintayritykset | int | 0 | korkea | Arvon asettaminen yli 0 saa asiakkaan lähettämään tiedot uudelleen, kun kyseinen data epäonnistuu. Huomaa, että nämä uusintayritykset eivät eroa niistä, joissa asiakas saa lähetysvirheen. Sallii uudelleenyritysten mahdollisesti muuttaa datan järjestystä, jos molemmat viestitietueet lähetetään samaan osioon, ensimmäinen viesti epäonnistuu, toinen viesti ilmestyy ennen ensimmäistä. | | erä.koko | int | 16384 | Keskiverto | Tuottaja yrittää erottaa viestitietueita vähentääkseen pyyntöjen määrää. Tämä parantaa suorituskykyä asiakkaan ja palvelimen välillä. Tämä konfiguraatio säätelee eräajoviestien oletustavujen määrää. Viestitavuja, jotka ovat suurempia kuin tämä tavumäärä, ei yritetä. Välittäjille lähetetyt pyynnöt sisältävät useita eritä, jotka sisältävät yhden pyynnön jokaiselle osiolle. Pienemmät eräarvot ovat vähemmän käytössä ja voivat vähentää läpimenoa (0 käyttää vain eräajojakoa). Suuremmat eräarvot vievät enemmän muistitilaa, joten sinun täytyy varata muistia tietyille eräarvoille. | | client.id | Merkkijono | | Keskiverto | Tämä merkkijono lähetetään palvelimelle, kun pyyntö tehdään. Tarkoituksena on pystyä jäljittämään pyyntöjen lähde, jotta jotkut IP/porttilupalistan ulkopuoliset sovellukset voivat lähettää tietoa. Tämä sovellus voi asettaa minkä tahansa kielen, koska sillä ei ole muuta toiminnallista tarkoitusta kuin tallentaminen ja seuranta | | linger.ms | pitkä | 0 | Keskiverto | Tuottajaryhmä kokoaa kaikki viestit, jotka saapuvat pyynnön ja lähetyksen välillä, tallentaen erillisen erän pyyntöjä. Tyypillisesti tämä tapahtuu vain, kun tietue luodaan nopeammin kuin lähetysnopeus. Kuitenkin tietyissä olosuhteissa asiakas haluaa vähentää pyyntöjen määrää tai jopa kohtuulliseen kuormitukseen. Tämä asetelma tehdään lisäämällä pieni viive – eli tuottaja ei lähetä tietuetta heti, vaan odottaa tiettyä viiveaikaa, jotta muut viestitietueet voidaan lähettää eräajoissa. Tätä voidaan pitää samankaltaisena algoritmina kuin TCP Nagle. Tämä asetus asettaa korkeamman viiveen eräajoille: kun saamme osion batch.size-tiedoston, se lähettää sen välittömästi riippumatta tästä asetuksesta, mutta jos saamme viestin, jonka tavumäärä on paljon pienempi kuin tällä asetuksella, meidän täytyy "viipyä" tietty aika saadaksemme lisää viestejä. Tämä asetus on oletuksena 0, eli ei viivettä. Esimerkiksi asettamalla linger.ms=5 vähennetään pyyntöjen määrää, mutta samalla viive kasvaa 5 ms:llä. | | max.request.size | int | 1028576 | Keskiverto | Maksimimäärä pyydettyjä tavuja. Tämä on myös tehokas kattavuus suurimmalle tallennetulle koolle. Huomautus: Palvelimella on oma viestitietueiden koon ohituksensa, jotka poikkeavat tästä asetuksesta. Tämä asetus rajoittaa tuottajien tilausten määrää kerrallaan, jotta pyyntöjä ei olisi suuri. | | receive.buffer.bytes | int | 32768 | Keskiverto | TCP-vastaanottovälimuistin koko, jota käytetään datan lukemisessa | | send.buffer.bytes | int | 131072 | Keskiverto | TCP-lähetyksen välimuistikoko, jota käytetään datan lähettämisessä | | timeout.ms | int | 30000 | Keskiverto | Tämä konfiguraatiovaihtoehto säätelee maksimiaikaa, jonka palvelin odottaa seuraajien vahvistusta. Jos vahvistettujen pyyntöjen määrää ei täytetä tämän ajan kuluessa, palautetaan virhe. Tämä aikakatkaisuraja mitataan palvelinpuolella, eikä sillä ole verkon viivettä, mukaan lukien pyynnöt, | | block.on.buffer.full | Boolean | true | matala | Kun muistivälimuistimme loppuu, meidän täytyy lopettaa uusien viestitietueiden vastaanottaminen tai heittää virheitä. Oletuksena tämä on asetettu tosi-tilaan, mutta jotkin estot eivät välttämättä ole odottamisen arvoisia, joten on parempi heittää virhe heti. Näin on, kun tietue on asetettu vääräksi: tuottaja lähettää poikkeusvirheen: BufferExhaustedException, jos tietue on lähetetty ja välimuisti on täynnä. | | metadata.fetch.timeout.ms | pitkä | 60000 | matala | Se viittaa ensimmäiseen dataan joistakin alkuaineista, jotka olemme saaneet. Elementtejä ovat: aihe, isäntä, osiot. Tämä konfiguraatio tarkoittaa aikaa, joka kuluu elementin onnistuneeseen suoritukseen hakutoiminnon mukaisesti, muuten poikkeus lähetetään asiakkaalle. | | metadata.max.age.ms | pitkä | 300000 | matala | Aika mikrosekunneissa on väli, jonka aikana pakotamme metatiedot päivitettäväksi. Vaikka emme näkisi jakojohtajuuden muutoksia. | | metric.reporters | Lista | [] | matala | Luettelo luokista, joita käytetään mittareiden mittaamiseen. MetricReporter-rajapinnan käyttöönotto mahdollistaa luokkien lisäämisen, jotka muuttuvat uusien mittareiden syntyessä. JmxReporter sisältää aina tavan rekisteröidä JMX-tilastot | | metrics.num.samples | int | 2 | matala | Näytteiden määrä, joita käytetään mittareiden ylläpitoon | | metrics.sample.window.ms | pitkä | 30000 | matala | Metrics-järjestelmä ylläpitää konfiguroitavaa määrää näytteitä korjattavassa ikkunakoossa. Tämä konfiguraatio määrittää esimerkiksi ikkunan koon. Saatamme säilyttää kaksi näytettä 30 sekunnin ajan. Kun ikkuna avataan, pyyhimme ja kirjoitamme vanhimman ikkunan uudelleen | | recoonect.backoff.ms | pitkä | 10 | matala | Kun yhteys epäonnistuu, odotusaika on myös silloin, kun yhdistämme uudelleen. Tämä estää toistuvat asiakasyhteyden uudelleenyhteydet | | retry.backoff.ms | pitkä | 100 | matala | Odotusaika ennen epäonnistuneen tuotepyynnön uudelleenyrittämistä. Vältä jäämästä kiinni lähettä-epäonnistu -kuolleeseen.
|
|