Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 10630|Vastaus: 1

Yksityiskohtainen selitys Kafkan konfiguraatioparametreista

[Kopioi linkki]
Julkaistu 24.6.2021 11.47.12 | | |
Välittäjän konfiguraatiot

OmaisuusLaiminlyöntiKuvaus
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-logsPolku, 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.
Satama6667palvelin hyväksyy portin, johon asiakas yhdistyy
zookeeper.connectnollaZooKeeper-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.tavut1000000Palvelin 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.threads3Palvelimen käyttämien verkkosäikeiden määrä verkkopyyntöjen käsittelyyn; Yleensä tätä ominaisuutta ei tarvitse vaihtaa.
num.io.threads8Palvelimen 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.threads4Taustakäsittelyyn, kuten tiedostojen poistoon, käytettyjen säikeiden määrä; Sinun ei tarvitse muuttaa tätä ominaisuutta.
queued.max.requests500Suurin määrä pyyntöjä, jotka voidaan jonottaa I/O-säikeen käsittelyyn ennen kuin verkkosäie lakkaa lukemasta uusia pyyntöjä.
host.namenollavä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.namenollaJos se on asetettu, se lähetetään tuottajille, kuluttajille ja muille välittäjille välittäjän isäntänimenä
advertised.portnollaTä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.bytes100 * 1024SO_SNDBUFF Välimuistikoko, jota palvelin käyttää socket-yhteyksien tekemiseen
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF välimuistikoko, jota palvelin käyttää liittääkseen socketeihin
socket.request.max.tavut100 * 1024 * 1024Palvelimen sallima enimmäispyyntökoko;  Tämä estää palvelinten ylivuodot, jotka pitäisi olla pienempiä kuin Java-keon koko
num.partitions1Jos osioiden määrää ei anneta aihetta luodessa, tämä luku on aiheen oletusosioiden määrä.
log.segment.bytes1014*1024*1024Aiheosion 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.hours24 * 7Vaikka 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.policyPoista
log.retention.minutes ja log.retention.hours7 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-1Kunkin 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.ms5 minuuttiaTarkista lokisegmentoitujen tiedostojen välinen väli varmistaaksesi, täyttävätkö tiedostojen attribuutit poistovaatimukset.
log.cleaner.enablefalseKun 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.threads1Logaritin pakkausta suorittavien säikeiden määrä
log.cleaner.io.max.tavut.per sekuntiEi lainkaanSuurin 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.size500*1024*1024Log 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.factor512*1024I/O-palan koko, joka vaaditaan puun puhdistukseen. Sinun ei tarvitse muuttaa tätä asetusta.
log.cleaner.io.buffer.load.factor0.9lokien puhdistuksessa käytetyn hajautustaulun kuormituskerroin; Sinun ei tarvitse muuttaa tätä vaihtoehtoa.
log.cleaner.backoff.ms15000Aikaväli, jonka aikana loki siivotaan, suoritetaan
log.cleaner.min.cleanable.ratio0.5Tä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.ms1 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.tavut10*1024*1024Suurin 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.bytes4096Kun 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.messagesLong.MaxValuelokitiedosto "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.msLong.MaxValueTarkista, tarvitaanko fsync-intervalleja
log.flush.interval.msLong.MaxValueTä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.ms60000Tiedoston tyhjentämisen jälkeistä säilytysaikaa indeksissä ei yleensä tarvitse muuttaa
auto.create.topics.enabletrueSallitaanko 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.ms30000Socketin aikakatkaisuaika, kun osion hallintaohjain tekee varmuuskopion.
controller.message.queue.sizeInt.MaxValueController-to-broker-channles
default.replication.factor1Varmuuskopioiden oletusmäärä viittaa vain automaattisesti luotuihin aiheisiin
replica.lag.time.max.ms10000Jos seuraaja ei lähetä noutopyyntöä tämän ajan kuluessa, johtaja poistaa seuraajan ISR:stä ja katsoo seuraajan hirtettäväksi
replica.lag.max.viestit4000Jos replikassa on enemmän kuin tämä määrä varaamattomia, johtaja poistaa seuraajan ja pitää seuraajan hirtettynä
replica.socket.timeout.ms30*1000Leader-aikakatkaisu socket-verkkopyyntöihin varmuuskopioidessa dataa
replica.socket.receive.buffer.bytes64*1024Socketin vastaanottopuskuri, kun lähetetään verkkopyyntö johtajalle varmuuskopioinnin aikana
replica.fetch.max.tavua1024*1024Jokaisen noudon maksimiarvo varmuuskopiointihetkellä
replica.fetch.min.bytes500Maksimiodotusaika tiedon saavuttamiselle johtajalle, kun johtaja tekee varmuuskopiointipyynnön
replica.fetch.min.bytes1Vastauksen pienin koko jokaisen noudon jälkeen peruutuksen yhteydessä
num.replica.fetchers1Säikeiden määrä, jotka varmuuskopioivat johtajan dataa
replica.high.watermark.checkpoint.interval.ms5000Jokainen replika tarkistaa, kuinka usein korkein vedenpinta kuivuu
fetch.purgatory.purge.interval.requests1000Nouto pyytää puhdistusväliä
producer.purgatory.purge.interval.requests1000tuottaja pyytää puhdistusväliä
zookeeper.session.timeout.ms6000Eläintarhanhoitajan session aikalisä.
zookeeper.connection.timeout.ms6000Maksimiaika, jonka asiakas odottaa yhteyden muodostamista eläintarhanhoitajaan
zookeeper.sync.time.ms2000ZK:n seuraaja on jäljessä ZK:n johtajasta pisimpään
controlled.shutdown.enabletrueOnko 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.uusintoja3Käskyjen määrä, jotka voivat onnistuneesti suorittaa sammutuksen ennen epätäydellistä sammutusta.
controlled.shutdown.retry.backoff.ms5000Peruutusaika sulkujen välillä
auto.leader.rebalance.enabletrueJos näin on, controlleri tasapainottaa automaattisesti välittäjien johtajuuden osioiden välillä
leader.epätasapaino.per.välittäjä.prosenttiosuus10Jokaisen välittäjän sallima maksimiepätasapainosuhde
leader.epäbalance.check.interval.seconds300Tarkista johtajan epätasapainon tiheys
offset.metadata.max.tavut4096Mahdollistaa asiakkaiden tallentaa maksimimäärän offsettejaan
max.connections.per.ipInt.MaxValueVä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.ms600000Aikakatkaisu tyhjille yhteyksille
log.roll.jitter. {ms,tunnit}0Suurin määrä tärinää, joka on abstraktioitu logRollTimeMillisistä
num.recovery.threads.per.data.dir1Säikeiden määrä, joita kukin tietohakemisto käyttää palautuksen kirjaamiseen
unclean.leader.election.enabletrueIlmaisee, onko mahdollista käyttää ei-replikaatio-asetusta ISR:ssä johtajana
delete.topic.enablefalseMahdollisuus poistaa aiheita
offsets.topic.num.partitions50Offset 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.minutes1440Offsetit, jotka ovat olleet olemassa pidempään kuin tämä aikaraja, merkitään poistoa odottaviksi
offsets.retention.check.interval.ms600000Offset-hallinta tarkistaa vanhentuneiden siirtojen esiintymistiheyden
offsets.topic.replication.factor3Aiheen varakappaleiden määrä. On suositeltavaa asettaa korkeampia lukuja, jotta saatavuuden saatavuus takaa
offset.topic.segment.bytes104857600Sivuttavat aiheen.
offsets.load.buffer.size5242880Tämä asetus liittyy erän kokoon ja sitä käytetään offset-segmentin lukemisessa.
offsets.commit.required.acks-1Vahvistusten määrä täytyy asettaa ennen kuin offset-sitoutuminen on hyväksyttävää, eikä sitä yleensä tarvitse muuttaa


OmaisuusLaiminlyöntiPalvelimen oletusominaisuusKuvaus
siivous.politiikkaPoistalog.cleanup.policyJoko "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.ms86400000 (24 tuntia)log.cleaner.delete.retention.msEro 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.messagesEi lainkaanlog.flush.interval.messagesTä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.msEi lainkaanlog.flush.interval.msTä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.bytes4096log.index.interval.bytesOletusasetus 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.bytes1000000max.message.bytesKafka-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.suhde0.5min.puhdistettavissa.likainen.suhdeTä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.replicas1min.insync.replicasKun 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.bytesEi lainkaanlog.retention.bytesJos käytät "poista"-säilytyskäytäntöä, tämä konfiguraatio viittaa lokin maksimikokoon ennen poistamista. Oletuksena kokorajoitusta ei ole, vaan vain aikaraja
retention.ms7 päiväälog.retention.minutesJos käytät "poista"-säilytyskäytäntöä, tämä asetus viittaa aikaan, jolloin loki tallennettiin ennen poistolokia.
segment.tavut1GBlog.segment.bytesKafkassa logarit tallennetaan lohkoihin, ja tämä konfiguraatio viittaa logaritin kokoon, joka on jaettu lohkoihin
segment.index.bytes10MBlog.index.size.max.tavutTämä konfiguraatio on noin indeksitiedoston koko, joka on kartoitettu offsettien ja tiedostojen sijaintien välillä; Tätä kokoonpanoa ei yleensä tarvitse muuttaa
segment.ms7 päiväälog.roll.hoursVaikka lokilohko-tiedosto ei saavuttaisi poistamisen tai pakkaamisen kokoa, kun lokiaika saavuttaa tämän ylärajan, pakotetaan uusi lokilohko-tiedosto
segment.jitter.ms0 log.roll.jitter. {ms,tunnit}Suurin jitter, joka vähennetään logRollTimeMillisistä.


Kuluttajakonfiguraatiot

OmaisuusLaiminlyöntiKuvaus
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.idnollaAsetusta ei tarvita, ja se generoidaan yleensä automaattisesti
socket.timeout.ms30*100Aikakatkaisurajoitukset verkkopyynnöille. Todellinen aikakatkaisu on max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes64*1024socketia käytetään verkkopyyntöjen välimuistikoon vastaanottamiseen
fetch.message.max.tavut1024*1024Maksimimää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.fetchers1Hakusäikeiden määrä hakea dataa varten
auto.commit.enabletrueJos 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.ms60*1000Kuluttajan lähettämisnopeus eläintarhanhoitajalle on sekunneissa
queued.max.message.chunks2Suurin määrä viestejä, joita käytetään välimuistiin kulutusta varten. Jokaisen lohkon täytyy olla sama kuin fetch.message.max.tavu
rebalance.max.uusintoja4Kun 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.bytes1Vä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.ms100Jos fetch.min.bytes ei ole tarpeeksi dataa, tämä konfiguraatio tarkoittaa maksimiaikaa, jonka palvelin estää ennen noutopyyntöön vastaamista.
rebalance.backoff.ms2000Peruutusaika ennen Reblancen uudelleenyrittämistä
refresh.leader.backoff.ms200On aika perääntyä ennen kuin yritetään selvittää, onko jaon johtaja menettänyt johtajuutensa
auto.offset.resetSuurinJos 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-1Jos viestiä ei ole saatavilla, vaikka odottaisin tietyn ajan, otetaan aikalisäpoikkeus
exclude.internal.topicstruePitäisikö sisäisistä aiheista kertoa viestejä kuluttajille
paritition.assignment.strategyLevinneisyysValitse politiikka osioiden määrittämiseen kuluttajavirralle, vaihtoehtoisesti range, roundrobin
client.idGroup ID -arvoon käyttäjäkohtainen merkkijono, joka auttaa seuraamaan kutsuja jokaisessa pyynnössä. Sen tulisi loogisesti vahvistaa pyyntö syntynyt sovellus
zookeeper.session.timeout.ms6000Aikalisä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.ms6000Maksimiodotusaika asiakkaan eläintarhanhoitaja-yhteyden muodostamiseksi
zookeeper.sync.time.ms2000ZK:n seuraajat voivat jäädä ZK:n johtajan jälkeen maksimiajan ajan
offsets.storageEläintarhanhoitajaPaikkoja, joissa säilytetään offsetteja: eläintarhanhoitaja tai kafka
offset.channel.backoff.ms1000Peruutusaika siirtymien kanavalle uudelleen yhdistämiseen tai epäonnistuneen offsetin haku-/commit-pyynnön uudelleenyrittämiseen
offsets.channel.socket.timeout.ms10000Socketin aikakatkaisun raja nouto-/commit-pyyntövastaukseen offsetin lukemisen yhteydessä. Tätä aikakatkaisua käyttää consumerMetadata-pyyntö offset-hallinnan pyytämiseen
offsets.commit.max.uusintoja5Kuinka monta kertaa offset-sitoutumista yritettiin uudelleen. Tämä uudelleenyritys koskee vain offset-committeja sammutuksen välillä. Hän
dual.commit.enabledtrueJos 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.strategyLevinneisyysValitse "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

OmaisuusLaiminlyöntiKuvaus
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.acks0Tä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.ms10000Välittäjä pyrkii parhaansa mukaan toteuttamaan request.required.acks -vaatimuksen, muuten asiakkaalle lähetetään virhe
producer.typeSynkronointiTä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.classkafka.serializer.DefaultEncoderViestin 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.classkafka.producer.DefaultPartitionerPartitioner-luokka viestien jakamiseen alaaiheiden kesken. Oletusosio perustuu avaimen hajautustaulukkoon
compression.codecei lainkaanTämä parametri voi asettaa koodekin datan pakkaamista varten, joka voidaan valita "none", "gzip", "snappy".
compressed.topicsnollaTä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.uusintoja3Tä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.ms100Ennen 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.ms600*1000Tuottaja 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.ms5000Maksimiaika, 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.viestit10000Asynkronisessa 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.messages200Asynkronisessa 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.bytes100*1024Socketin 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

NimiTyyppiLaiminlyöntiMerkitysKuvaus
boostrap.serversLista korkeaIsä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.
acksMerkkijono1korkeaTuottaja 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.memorypitkä33554432korkeaTuottajaa 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.typeMerkkijonoei lainkaankorkeatuottaja 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.
Uusintayrityksetint0korkeaArvon 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ä.kokoint16384KeskivertoTuottaja 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.idMerkkijono KeskivertoTä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.mspitkä0KeskivertoTuottajaryhmä 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.sizeint1028576KeskivertoMaksimimää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.bytesint32768KeskivertoTCP-vastaanottovälimuistin koko, jota käytetään datan lukemisessa
send.buffer.bytesint131072KeskivertoTCP-lähetyksen välimuistikoko, jota käytetään datan lähettämisessä
timeout.msint30000KeskivertoTä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.fullBooleantruematalaKun 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.mspitkä60000matalaSe 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.mspitkä300000matalaAika mikrosekunneissa on väli, jonka aikana pakotamme metatiedot päivitettäväksi. Vaikka emme näkisi jakojohtajuuden muutoksia.
metric.reportersLista[]matalaLuettelo 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.samplesint2matalaNäytteiden määrä, joita käytetään mittareiden ylläpitoon
metrics.sample.window.mspitkä30000matalaMetrics-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.mspitkä10matalaKun yhteys epäonnistuu, odotusaika on myös silloin, kun yhdistämme uudelleen. Tämä estää toistuvat asiakasyhteyden uudelleenyhteydet
retry.backoff.mspitkä100matalaOdotusaika ennen epäonnistuneen tuotepyynnön uudelleenyrittämistä. Vältä jäämästä kiinni lähettä-epäonnistu -kuolleeseen.




Edellinen:【Practice】Eclipse asentaa lombok-pluginin
Seuraava:Java JMX on helppo ymmärtää ja käyttää
 Vuokraisäntä| Julkaistu 2.11.2021 14.10.57 |
server.properties -asetus

Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com