Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 10630|Svar: 1

Detaljerad förklaring av Kafkas konfigurationsparametrar

[Kopiera länk]
Publicerad på 2021-06-24 11:47:12 | | |
Broker-konfigurationer

EgendomStandardBeskrivning
broker.id Varje mäklare kan identifieras med ett unikt icke-negativt heltals-ID; Detta id kan användas som "namn" på mäklaren, och dess existens gör att mäklaren kan migrera till en annan värd/port utan att förvirra konsumenterna. Du kan välja vilket nummer du vill som ID, så länge ID:t är unikt.
log.dirs/tmp/kafka-logsVägen där Kafka lagrar data. Denna väg är inte unik, den kan vara multipla, och vägarna behöver bara separeras med kommatecken; När en ny partition skapas väljs den att göra det under den väg som innehåller minst antal partitioner.
Portering6667Servern accepterar porten som klienten ansluter till
zookeeper.connectnollFormatet för ZooKeeper-anslutningssträngen är: hostname:port, där värdnamn och port är värd respektive port för en nod i ZooKeeper-klustret. För att ansluta till andra ZooKeeper-noder när en värd går ner kan du skapa flera värdar enligt följande:
hostname1:port1, hostname2:port2, hostname3:port3.

ZooKeeper låter dig lägga till en "chroot"-sökväg för att lagra all kafka-data i klustret under en specifik väg. När flera Kafka-kluster eller andra applikationer använder samma ZooKeeper-kluster kan du använda denna metod för att ställa in datalagringsvägen. Detta kan implementeras genom att formatera anslutningssträngen så här:
värdnamn1:port1,värdnamn2:port2,värdnamn3:port3/chroot/path
Denna setup lagrar all kafka-klusterdata under /chroot/path-vägen. Observera att innan du startar mäklaren måste du skapa denna ruta, och konsumenter måste använda samma anslutningsformat.
message.max.bytes1000000Den maximala storleken på meddelanden som en server kan ta emot. Det är viktigt att konsumentens och producentens inställningar kring denna egendom synkroniseras, annars blir det budskap som producenten publicerar för stort för konsumenten.
num.network.threads3Antalet nätverkstrådar som servern använder för att behandla nätverksförfrågningar; Du behöver i allmänhet inte ändra denna egendom.
num.io.threads8Antalet I/O-trådar som servern använder för att behandla förfrågningar; Antalet trådar bör vara minst lika med antalet hårddiskar.
bakgrund.trådar4Antalet trådar som används för bakgrundsbehandling, såsom filradering; Du behöver inte ändra denna egendom.
queued.max.önskemål500Det maximala antalet förfrågningar som kan köas för en I/O-tråd att behandla innan en nätverkstråd slutar läsa nya förfrågningar.
host.namenollMäklarens värdnamn; Om värdnamnet redan är satt kommer mäklaren endast att bindas till denna adress; Om det inte finns någon inställning binder den till alla gränssnitt och publicerar en kopia till ZK
advertised.host.namenollOm det är satt skickas det till producenter, konsumenter och andra mäklare som mäklarens värdnamn
advertised.portnollDenna port ges till producenter, konsumenter och andra mäklare, och används för att etablera en förbindelse; Det behöver bara ställas in om den faktiska porten och den port som servern behöver binda är olika.
socket.send.buffer.bytes100 * 1024SO_SNDBUFF Cachestorlek, som servern använder för att skapa socketanslutningar
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF cachestorlek, som servern använder för att ansluta till sockets
socket.request.max.bytes100 * 1024 * 1024Den maximala begäransökningsstorleken som servern tillåter;  Detta undviker serveröverflöden, som bör vara mindre än Java-heapens storlek
num.partitioner1Om antalet partitioner inte anges vid skapandet av ett ämne, kommer detta antal att vara standardantalet partitioner under ämnet.
log.segment.bytes1014*1024*1024Loggarna för ämnespartitionen lagras i många filer i en viss katalog, som delar upp loggarna för partitionen i segment; Detta attribut är den maximala storleken på varje fil; När dimensionerna når detta värde skapas en ny fil. Denna inställning kan åsidosättas av grunden för varje ämne.
Vy  Inloggningen med hyperlänken är synlig.
logg.rull.timmar24 * 7Även om filen inte når log.segment.bytes skapas en ny fil när filskapandetiden når denna egenskap. Denna inställning kan också åsidosättas av ämnesnivå-inställningar;
UtsiktInloggningen med hyperlänken är synlig.
logg.cleanup.policyTa bort
logg.retention.minutes och log.retention.hours7 dagarTiden varje loggfil sparades innan den raderades. Standarddatasparande tid är densamma för alla ämnen.
log.retention.minutes och log.retention.bytes används båda för att ställa in radering av loggfiler, oavsett vilken egenskap som har överflödats.
Denna egenskapsinställning kan åsidosättas när ämnet i princip är satt.
UtsiktInloggningen med hyperlänken är synlig.
log.retention.bytes-1Den totala mängden data som sparas av varje partition under varje ämne; Observera att detta är den övre gränsen per partition, så detta tal multiplicerat med antalet partitioner är den totala mängden data lagrad per ämne. Observera också: Om både log.retention.hours och log.retention.bytes är satta, kommer överskridande av någon av gränserna att en segmentfil tas bort.
Observera att denna inställning kan åsidosättas av varje ämne.
UtsiktInloggningen med hyperlänken är synlig.
log.retention.check.interval.ms5 minuterKontrollera intervallet mellan loggsegmenterade filer för att avgöra om filattributen uppfyller raderingskraven.
log.cleaner.enablefalseNär denna egenskap sätts till false kommer den att raderas när loggen har lagrats för maximal tid eller storlek. Om det sätts till true sker det när sparattributet når den övre gränsenInloggningen med hyperlänken är synlig.
log.cleaner.threads1Antalet trådar som utför log-komprimering
log.cleaner.io.max.bytes.per.sekundIngenDet maximala antalet I/O:er som en loggrensare kan ha vid en loggkomprimering. Denna inställning begränsar rengöringen för att undvika att störa aktiva förfrågningstjänster.
log.cleaner.io.buffer.size500*1024*1024Log Cleaner indexerar loggar under saneringsprocessen och minskar storleken på cachen som används. Det är bäst att ställa in den stor för att ge gott om minne.
log.cleaner.io.buffer.load.factor512*1024Storleken på I/O-biten som krävs för stockrengöring. Du behöver inte ändra denna inställning.
log.cleaner.io.buffer.load.factor0.9lastfaktorn för hashtabellen som används vid logrensning; Du behöver inte ändra detta alternativ.
log.cleaner.backoff.ms15000Tidsintervallet då loggen rensas utförs
Log.cleaner.min.cleanable.ratio0.5Denna konfiguration styr hur ofta stockkomprimatorn försöker rensa upp loggarna (antasInloggningen med hyperlänken är synlig.är öppen). Som standard, undvik att rengöra mer än 50 % av stockarna. Denna kvot är kopplad till det maximala utrymme som förbrukas av backuploggen (50 % av loggarna komprimeras vid 50 %). En högre avgift innebär mindre avfall och mer utrymme kan rensas mer effektivt. Denna inställning kan åsidosättas i varje ämnesinställning.
UtsiktInloggningen med hyperlänken är synlig.
log.cleaner.delete.retention.ms1 daglagringstid; Maximal tid för att föra komprimerade loggar; Det är också den maximala tiden för klienten att konsumera meddelanden, och skillnaden mellan log.retention.minutes är att den ena kontrollerar den okomprimerade datan och den andra kontrollerar den komprimerade datan, som kommer att skrivas över vid den angivna tiden då ämnet skapas.
log.index.size.max.bytes10*1024*1024Maximal storlek per stocksegment. Observera att om logstorleken når detta värde måste ett nytt logsegment genereras även om storleken inte överskrider gränsen för log.segment.bytes.
log.index.interval.bytes4096När du utför en fetch behöver du skanna närmaste offset med en viss mängd utrymme, ju större inställning desto bättre, använd vanligtvis standardvärdet
log.flush.interval.messagesLong.MaxValueLoggfilen "synkar" till disken innan meddelanden samlas. Eftersom disk-IO-operationer är en långsam operation, men också ett nödvändigt medel för "datatillförlitlighet", kontrollera om tidsintervallet för att härda hårddisken är lämpligt. Om detta värde är för högt leder det till för lång "synkroniserings"-tid (IO-blockering), om detta värde är för litet leder det till lång tid av "fsync" (IO-blockering), om detta värde är för litet leder det till ett stort antal "synkroniserings"-tider, vilket innebär att den övergripande klientförfrågan har en viss fördröjning, och fel på den fysiska servern leder till förlust av meddelanden utan fsync.
log.flush.scheduler.interval.msLong.MaxValueKontrollera om fsync-intervaller krävs
log.flush.interval.msLong.MaxValueDetta tal används för att styra tidsintervallet för "fsync", om antalet meddelanden aldrig når antalet meddelanden som är fastbundna på disken, men tidsintervallet från den senaste disksynkroniseringen når tröskeln, utlöses även disksynkroniseringen.
log.delete.delay.ms60000Förvaringstiden efter att filen rensats i indexet behöver i allmänhet inte ändras
auto.create.topics.enabletrueOm man ska tillåta automatisk skapande av ämnen. Om det stämmer kommer det automatiskt att skapa ett ämne som inte existerar när produce eller fetch inte existerar. Annars behöver du använda kommandoraden för att skapa ett ämne
controller.socket.timeout.ms30000Tiden för socketen när partitionhanteringskontrollern gör en backup.
controller.message.queue.sizeInt.MaxValueController-till-mäklare-channles
default.replication.factor1Standardantalet säkerhetskopieringskopior avser endast automatiskt skapade ämnen
replica.lag.time.max.ms10000Om en följare inte skickar en hämtaförfrågan inom denna tid, kommer ledaren att ta bort följaren från ISR igen och betrakta följaren som hängd
replica.lag.max.messages4000Om en replika har fler än detta antal obackade kommer ledaren att ta bort följaren och betrakta följaren som hängd
replica.socket.timeout.ms30*1000ledartider för socket-nätverksförfrågningar vid säkerhetskopiering av data
replica.socket.receive.buffer.bytes64*1024Socket receive buffer när en nätverksförfrågan skickas till ledaren under säkerhetskopiering
replica.fetch.max.bytes1024*1024Maxvärdet för varje hämtning vid säkerhetskopieringstillfället
replica.fetch.min.bytes500Maximal väntetid för att data ska nå ledaren när ledaren gör en reservförfrågan
replica.fetch.min.bytes1Den minsta storleken på svaret efter varje hämtning när man backar
num.replica.fetchers1Antalet trådar som säkerhetskopierar data från ledaren
replica.high.watermark.checkpoint.interval.ms5000Varje replika kontrollerar hur ofta den högsta vattennivån härdas
fetch.purgatory.purge.interval.requests1000hämta begäran om rensningsintervallet
producer.purgatory.purge.interval.requests1000producenten begär ett rensningsintervall
zookeeper.session.timeout.ms6000Timeout för djurskötarpasset.
zookeeper.connection.timeout.ms6000Den maximala tiden klienten väntar på att etablera en kontakt med djurskötaren
zookeeper.sync.time.ms2000ZK-följaren ligger efter ZK-ledaren under lång tid
controlled.shutdown.enabletrueOm det är möjligt att kontrollera nedläggningen av mäklaren. Om möjligt kan mäklaren flytta alla ledare till andra mäklare innan avslut. Detta minskar otillgängligheten under avstängningsprocessen.
controlled.shutdown.max.omprövningar3Antalet kommandon som kan utföra en avstängning innan en ofullständig avstängning utförs.
controlled.shutdown.retry.backoff.ms5000Tillbakagång mellan nedstängningar
auto.leader.rebalance.enabletrueOm detta stämmer kommer kontrollanten automatiskt att balansera mäklarens ledarskap över partitionerna
ledare.obalans.per.mäklare.procent10Den maximala obalanskvoten som varje mäklare tillåter
ledare.obalans.check.interval.seconds300Kontrollera frekvensen av ledarobalans
offset.metadata.max.bytes4096Tillåter klienter att spara maximalt antal av sina offsets
max.connections.per.ipInt.MaxValueDet maximala antalet anslutningar per mäklare kan göras till varje IP-adress
max.connections.per.ip.overrides Maximal täckning av standardanslutningen per IP eller värdnamn
connections.max.idle.ms600000Tidsgräns för tomma anslutningar
logg.rulla.jitter. {ms,hours}0Det maximala antalet ryckningar abstraherat från logRollTimeMillis
num.recovery.threads.per.data.dir1Antalet trådar som varje datakatalog använder för att logga återställning
oren.ledare.val.enabletrueAnger om det är möjligt att använda icke-replika-inställningen i ISR som ledare
delete.topic.enablefalseKan ta bort ämnen
offsets.topic.num.partitions50Antalet partitioner för offset-commit-ämnet. Eftersom det för närvarande inte stöds att ändra detta efter utrullning rekommenderar vi att man använder en högre inställning för produktion (t.ex. 100-200).
offsets.topic.retention.minutes1440Offsets som har funnits längre än denna tidsgräns markeras som väntande radering
offsets.retention.check.interval.ms600000Offset-managern kontrollerar frekvensen av föråldrade offsetar
offsets.topic.replication.factor3Antalet säkerhetskopior av ämnets offset. Det rekommenderas att sätta högre siffror för att garantera högre tillgänglighet
offset.topic.segment.bytes104857600Offset-ämnet.
offsets.load.buffer.size5242880Denna inställning är relaterad till batchstorleken och används vid läsning från offsetsegmentet.
offsets.commit.required.acks-1Antalet bekräftelser måste sättas innan offset-commit är acceptabelt, och behöver generellt inte ändras


EgendomStandardServerstandardegenskapBeskrivning
Cleanup.policyTa bortlogg.cleanup.policyAntingen "radera" eller "kompaktera"; Denna sträng visar hur man använder den gamla log-delen; Standardmetoden ("ta bort") kommer att kassera den gamla delen när deras återvinningstid eller storleksgräns har nåtts. "kompakt" kommer att komprimera loggarna
delete.retention.ms86400000 (24 timmar)log.cleaner.delete.retention.msSkillnaden mellan log.retention.minutes är att den ena kontrollerar okomprimerad data och den andra kontrollerar komprimerad data. Denna konfiguration kan åsidosättas av pinningsparametrarna när ämnet skapas
flush.messagesIngenlog.flush.interval.messagesDenna konfiguration specificerar ett tidsintervall för att tvinga fsync-loggar. Till exempel, om detta alternativ är inställt på 1, krävs fsync efter varje meddelande, och om det är satt till 5 krävs fsync för varje 5 meddelanden. Generellt rekommenderas det att du inte sätter detta värde. Inställningen av denna parameter kräver den nödvändiga avvägningen mellan "datatillförlitlighet" och "prestanda". Om detta värde är för stort kommer det att leda till lång tid att "fsynca" varje gång (IO-blockering), och om detta värde är för litet leder det till ett stort antal "fsync", vilket också innebär att det finns en viss fördröjning i den totala klientförfrågan. Fysisk serverfel gör att meddelanden går förlorade utan fsync.
flush.msIngenlog.flush.interval.msDenna konfiguration används för att fastställa tidsintervallet mellan att tvinga fsync-loggar till disken; Till exempel, om det är inställt på 1000, krävs fsync var 1000 ms. Detta alternativ rekommenderas generellt inte
index.interval.bytes4096log.index.interval.bytesStandardinställningen säkerställer att vi lägger till ett index i meddelandet var 4096:e byte, och fler index gör läsmeddelandet närmare, men indexstorleken ökar. Detta alternativ är generellt inte nödvändigt
max.message.bytes1000000max.message.bytesDen maximala storleken på kafka-tilläggsmeddelandet. Observera att om du ökar denna storlek måste du också öka hämtastorleken på din konsument så att konsumenten kan hämta meddelanden till dessa maximala storlekar.
min.rengörbart.smutsigt.förhållande0.5min.rengörbart.smutsigt.förhållandeDenna konfiguration styr hur ofta stockkompressorn försöker rensa stockarna. Som standard undviks loggar med en komprimeringsgrad på mer än 50 %. Denna kvot undviker det största slöseriet med utrymme
min.insync.replicas1min.insync.replicasNär producenten är inställd på request.required.acks till -1, specificerar min.insync.replicas det minsta antalet repliker (varje repica-skriv måste lyckas), och om detta antal inte uppnås kommer producenten att skapa ett undantag.
retention.bytesIngenlog.retention.bytesOm du använder "delete"-bevarandepolicyn syftar denna konfiguration på den maximala storlek som loggen kan uppnå innan den raderas. Som standard finns ingen storleksgräns utan endast en tidsgräns
retention.ms7 dagarlogg.retention.minutesOm du använder "delete"-bevarandepolicyn avser denna konfiguration tiden då loggen sparades innan raderingsloggen.
segment.bytes1GBlog.segment.bytesI Kafka lagras stockstockar i chunkar, och denna konfiguration avser storleken på stockstockar uppdelade i chunks
segment.index.bytes10MBlog.index.size.max.bytesDenna konfiguration är ungefär lika stor som indexfilen som mappas mellan offsets och filplatser; Denna konfiguration behöver i allmänhet inte ändras
segment.ms7 dagarlogg.rull.timmarÄven om loggchunk-filen inte når den storlek som behöver tas bort eller komprimeras, kommer en ny log chunk-fil att tvingas fram när loggtiden når denna övre gräns
segment.jitter.ms0 logg.rulla.jitter. {ms,hours}Den maximala jittern att dra av från logRollTimeMillis.


Konsumentkonfigurationer

EgendomStandardBeskrivning
group.id En sträng som unikt identifierar gruppen där konsumentprocessen befinner sig, och om samma grupp-ID är satt, betyder det att dessa processer tillhör samma konsumentgrupp
zookeeper.connect Ange strängen för Zookeeper-anslutningen, formatet är värdnamn:port, här är värden och porten både värd och port för Zookeeper-servern, för att undvika att förlora kontakten efter att en Zookeeper-maskin gått ner kan du ange flera värdnamn:portar med kommatecken som separation:
värdnamn1:port1,värdnamn2:port2,värdnamn3:port3
Du kan lägga till ZooKeepers chroot-väg i ZooKeeper-anslutningssträngen, som används för att lagra sin egen data, på ett sätt:
värdnamn1:port1,värdnamn2:port2,värdnamn3:port3/chroot/path
consumer.idnollIngen installation krävs, och generellt genereras den automatiskt
socket.timeout.ms30*100Tidsgränser för nätverksförfrågningar. Den verkliga timeout-gränsen är max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes64*1024socket används för att ta emot cachestorleken för nätverksförfrågningar
fetch.message.max.bytes1024*1024Det maximala antalet byte per hämta-meddelande per hämtaförfrågan. Dessa byte övervakas i minnet som används för varje partition, så denna inställning styr mängden minne som används av konsumenten. Hämtandet av begäran måste vara minst lika med den maximala meddelandestorlek som servern tillåter, annars är storleken på det meddelande som producenten kan skicka större än den som konsumenten kan konsumera.
num.consumer.fetchers1Antalet hämtartrådar som används för hämtadata
auto.commit.enabletrueOm det stämmer, kommer offsetet av meddelandet som konsumenten hämtar automatiskt att synkroniseras med djurvårdaren. Denna commit-offset kommer att användas av den nya konsumenten när processen läggs upp
auto.commit.interval.ms60*1000Frekvensen med vilken konsumenten skickar in offset till djurskötaren är i sekunder
queued.max.message.chunks2Det maximala antalet meddelanden som används för att cachelagras för konsumtion. Varje chunk måste vara samma som fetch.message.max.bytes
rebalance.max. omprövningar4När en ny konsument läggs till i en konsumentgrupp försöker samlingen av konsumenter ombalansera antalet partitioner som tilldelats varje konsument. Om konsumentens samling ändras misslyckas denna ombalansering och återaktiveras när allokeringen utförs
hämta.min.bytes1Det minsta antalet bytes som servern bör returnera vid varje hämtaförfrågan. Om inte tillräckligt med data returneras väntar förfrågan tills tillräckligt med data har returnerats.
fetch.wait.max.ms100Om det inte finns tillräckligt med data för att uppfylla fetch.min.bytes avser denna konfiguration den maximala tid servern blockerar innan den svarar på en fetch-förfrågan.
rebalance.backoff.ms2000Backoff innan jag försöker reblance igen
refresh.leader.backoff.ms200Det finns en tid att vänta innan man försöker avgöra om en partitions ledare har förlorat sitt ledarskap
auto.offset.resetStörstaOm det inte finns någon initierad offset i Zookeeper, om offset är ett svar på följande värde:
minsta: Automatisk återställning till minsta offset
största: Automatisk återställning till offset av största
Allt annat: Ger ett undantag för konsumenten
consumer.timeout.ms-1Om inget meddelande är tillgängligt, även efter att ha väntat en viss tid, kastas ett timeout-undantag
exkludera.intern.ämnentrueOm man ska exponera meddelanden från interna ämnen till konsumenter
parition.assignment.strategyUtbredningVälj policyn för att tilldela partitioner till konsumentflödet, valfritt intervall, roundrobin
client.idGrupp-ID-värdeär en användarspecifik sträng som hjälper till att spåra anrop i varje förfrågan. Den bör logiskt bekräfta applikationen som genererade förfrågan
zookeeper.session.timeout.ms6000Tidsgränser för djurskötarsessioner. Om konsumenten inte skickar ett hjärtslagsmeddelande till djurvårdaren under denna tid anses det vara pålagt och en reblance genereras
zookeeper.connection.timeout.ms6000Maximal väntetid för en klient att etablera en Zookeeper-anslutning
zookeeper.sync.time.ms2000ZK-följare kan halka efter ZK-ledaren under maximal tid
offsets.storagedjurskötarePlatser som används för att förvara kompensationer: djurskötare eller kafka
offset.channel.backoff.ms1000Backoff-tiden för att återansluta till offset-kanalen eller försöka om fetch/commit-begäran av den misslyckade offseten
offsets.channel.socket.timeout.ms10000Socketens timeout-gräns för svaret på fetch/commit-förfrågan vid läsoffset. Denna tidsbegränsning används av consumerMetadata-begäran för att begära offset-hantering
offsets.commit.max. försök igen5Antalet gånger offset-commit försöktes om. Denna omprövning tillämpas endast på offset-commits mellan avstängningar. honom
dual.commit.enabledtrueOm du använder "kafka" som offsets.storage kan du commit offset till zookeeper två gånger (och en gång till kafka). Detta är ett måste när man migrerar från Zookeeper-baserad offsetlagring till Kafka-baserad offsetlagring. För varje given konsumentgrupp är det en säker rekommendation att stänga av detta alternativ när migreringen är klar
partition.assignment.strategyUtbredningVälj mellan "range"- och "roundrobin"-policyerna som policy för att tilldela partitioner till konsumentdataflöden; Den cirkulära partitionsallokatorn allokerar alla tillgängliga partitioner samt alla tillgängliga konsumenttrådar. Den kommer att tilldela partitionsloopen till konsumenttråden. Om alla konsumentinstanser prenumereras på en bestämd delas partitionerna upp i deterministiska distributioner. Round-robin-allokeringsstrategin är endast möjlig om följande villkor är uppfyllda: (1) Varje ämne har samma antal dataflöden per konsumentstyrka. (2) Samlingen av prenumererade ämnen bestäms för varje konsumentinstans i konsumentgruppen.


Producentkonfigurationer

EgendomStandardBeskrivning
metadata.broker.list Tjäna bootstrapping. producer används endast för att hämta metadata (ämnen, partitioner, repliker). Socketanslutningen för att skicka den faktiska datan kommer att upprättas baserat på den returnerade metadatan. Formatet är:
värd1:port1,värd2:port2
Denna lista kan vara en underlista över mäklare eller en VIP som pekar på mäklare
begäran.krävs.acks0Denna konfiguration är ett bekräftelsevärde som anger när en produktionsförfrågan anses vara slutförd. Särskilt hur många andra mäklare måste ha lämnat in data till sina loggar och bekräftat denna information för sin ledare. Typiska värden inkluderar:
0: Indikerar att producenten aldrig väntar på bekräftelse från mäklaren (samma beteende som 0,7). Detta alternativ ger minst latens men samtidigt störst risk (eftersom data går förlorad när servern går ner).
1: Indikerar att ledarreplikan har mottagit databekräftelsen. Detta alternativ har låg latens och säkerställer att servern bekräftar att det tas emot.
-1: Producenten får bekräftelse på att alla synkroniserade repliker har mottagit data. Latensen är störst, men denna metod eliminerar inte helt risken för förlorade meddelanden, eftersom antalet synkroniserade repliker kan vara 1. Om du vill säkerställa att vissa repliker tar emot data bör du ställa in alternativet min.insync.replicas i ämnesnivåinställningarna. Läs designdokumentationen för en mer djupgående diskussion.
request.timeout.ms10000Mäklaren gör sitt bästa för att implementera request.required.acks-kravet, annars skickas ett fel till klienten
producer.typeSynkDetta alternativ fastställer om meddelandet skickas asynkront i en bakgrundstråd. Korrekta värden:
(1) asynkron: Asynkron sändning
(2) synk: Synkroniserad sändning
Genom att sätta producenten till asynkron kan vi behandla förfrågningar i batchar (vilket är bra för högre genomströmning), men detta skapar också risken att klientmaskinen förlorar oskickad data
serializer.classkafka.serializer.DefaultEncoderSerialiseringskategorin för meddelandet. Standardkodaren anger en byte[] och returnerar samma byte[]
key.serializer.class Serialiseringsklass för nyckelord. Om detta inte ges är standarden att matcha meddelandet
partitioner.classkafka.producer.DefaultPartitionerpartitionerklass för att dela meddelanden mellan delämnen. Standardpartitioneraren baseras på nyckelns hashtabell
compression.codecingenDenna parameter kan ställa in codec för att komprimera data, vilket kan väljas som "ingen", "gzip", "snappy".
komprimerade.ämnennollDenna parameter kan användas för att bestämma om vissa ämnen ska komprimeras. Om den komprimerade codec är en annan codec än NoCompressCodec, tillämpas dessa codecs på de specificerade ämnesdatana. Om listan över komprimerade ämnen är tom, applicera den specifika komprimerade kodeken på alla ämnen. Om den komprimerade codec är NoCompressionCodec är komprimeringen inte tillgänglig för alla ämnen.
message.send.max. försök3Denna parameter gör att producenten automatiskt försöker om misslyckade sändningsförfrågningar. Denna parameter fastställer antalet försök som är om. Observera: Att sätta ett icke-0-värde kommer att orsaka att vissa nätverksfel upprepas: orsakar en sändning och orsakar förlust av bekräftelse
retry.backoff.ms100Innan varje omförsök uppdaterar producenten metadata för det relevanta ämnet för att se om den nya ledaren tilldelas. Eftersom ledarvalet tar lite tid, specificerar detta alternativ hur länge producenten behöver vänta innan metadata uppdateras.
topic.metadata.refresh.interval.ms600*1000Producenten uppdaterar vanligtvis ämnets metadata i vissa felscenarier (partition saknas, ledare otillgänglig, etc.). Han går igenom en vanlig cykel. Om du sätter det till ett negativt värde kommer metadata bara att uppdateras om det misslyckas. Om den är satt till 0 uppdateras metadata efter varje meddelande som skickats (detta alternativ rekommenderas inte, systemet förbrukar för mycket). Viktigt: Uppdateringar sker först efter att meddelandet har skickats, så om producenten aldrig skickar meddelandet uppdateras metadata aldrig.
queue.buffering.max.ms5000Det maximala tidsintervallet då användaren cachar data när asynkront läge tillämpas. Till exempel, om meddelandet är inställt på 100, kommer meddelanden inom 100 ms att bearbetas i batcher. Detta förbättrar genomströmningen, men ökar latensen på grund av caching.
queue.buffering.max.messages10000När asynkront läge används måste det maximala antalet oskickade meddelanden som kan cachas till kön innan producenten blockeras eller data förloras
batch.num.messages200När du använder asynkront läge kan du batchbehandla så många meddelanden som möjligt. Eller så har antalet meddelanden nått detta online eller queue.buffer.max.ms har kommit, och producenten bearbetar det
send.buffer.bytes100*1024Socket skrivcachestorlek
client.id“”Detta klient-id är en användarspecifik sträng som ingår i varje förfrågan för att spåra anropet, och han bör logiskt kunna bekräfta att applikationen gjorde begäran.


Producentkonfigurationer

NamnTypStandardBetydelseBeskrivning
boostrap.serversLista HögtVärd/portgrupp för att etablera en anslutning till kafka-klustret. Data kommer att laddas jämnt över alla servrar, oavsett vilken server som är avsedd för bootstrapping. Denna lista påverkar endast de initierade värdarna (som används för att upptäcka alla servrar). Detta listaformat:
host1:port1,host2:port2,...
Eftersom dessa servrar endast används för att initiera anslutningar för att upptäcka alla klustrets medlemskap (som kan ändras dynamiskt), behöver denna lista inte innehålla alla servrar (du kan vilja ha mer än en server, även om en server i detta fall kan vara nere). Om ingen server finns i denna lista kommer sändningsdata att misslyckas tills listan är tillgänglig.
ACKSSträng1HögtProducenten behöver en signal från servern för att bekräfta mottagandet efter att ha mottagit datan, och denna konfiguration avser hur många sådana bekräftelsesignaler prokuudern behöver. Denna konfiguration representerar faktiskt tillgången till databackup. Följande inställningar är vanliga alternativ:
(1) acks=0: Satt till 0 betyder att producenten inte behöver vänta på någon bekräftelse av den mottagna informationen. Replikan kommer omedelbart att läggas till i socketbufferten och betraktas som skickad. Det finns ingen garanti för att servern framgångsrikt har tagit emot datan i detta fall, och återförsöket av konfigurationen kommer inte att fungera (eftersom klienten inte vet om det misslyckades) och offsetet av återkopplingen kommer alltid att sättas till -1.
(2) acks=1: Detta innebär att man åtminstone ska vänta på att ledaren ska skriva datan till den lokala loggen, men inte på att alla följare ska skriva framgångsrikt. I detta fall, om följaren inte lyckas säkerhetskopiera datan och ledaren lägger på igen, förloras meddelandet.
(3) acks=alla: Detta innebär att ledaren måste vänta tills alla säkerhetskopior framgångsrikt skriver loggar, och denna strategi säkerställer att data inte går förlorad så länge en backup överlever. Detta är den starkaste garantin.
(4) Andra inställningar, såsom acks=2, är också möjliga, vilket kräver ett givet antal acks, men denna strategi används generellt sällan.
buffer.minneLång33554432HögtProducenten kan användas för att cachelagra minnesstorleken på datan. Om datan genereras snabbare än den skickas till mäklaren, kommer producenten att blockera eller kasta ett undantag, indikerat med "block.on.buffer.full".

Denna inställning är relaterad till det totala minne som producenten kan använda, men det är ingen hård gräns, eftersom inte allt minne som producenten använder används för caching. En del extra minne används för komprimering (om komprimering införs), och en del används för underhållsförfrågningar.
compression.typeSträngingenHögtProducer är den typ av komprimering som används för att komprimera data. Standardinställningen är okomprimerad. De korrekta optionsvärdena är ingen, gzip, snappy.
Komprimering används bäst för batchbearbetning, ju fler meddelanden som bearbetas i batcher, desto bättre blir komprimeringsprestandan.
Omprövningarint0HögtAtt sätta ett värde större än 0 gör att klienten skickar om all data när den datan misslyckas. Observera att dessa återförsök inte skiljer sig från de när klienten får ett skickafel. Tillåter återförsök att potentiellt ändra ordningen på datan, om båda meddelandeposterna skickas till samma partition misslyckas det första meddelandet, det andra meddelandet visas tidigare än det första meddelandet.
batch.sizeint16384MediumProducenten kommer att försöka batcha meddelandeposterna för att minska antalet förfrågningar. Detta kommer att förbättra prestandan mellan klient och server. Denna konfiguration styr standardantalet byte för batchbearbetningsmeddelanden.
Inga försök görs att bearbeta meddelandebytes större än detta byteantal.
Förfrågningar som skickas till mäklare innehåller flera batcher, som innehåller en förfrågan för varje partition.
Mindre batchvärden används mindre och kan minska genomströmningen (0 använder endast batchbearbetning). Större batchvärden slösar mer minnesutrymme, så du måste allokera minne för specifika batchvärden.
client.idSträng MediumDenna sträng skickas till servern när en begäran görs. Syftet är att kunna spåra källan till förfrågningar för att tillåta vissa applikationer utanför IP/Port-listan att skicka information. Den här appen kan ställa in vilken sträng som helst eftersom den inte har någon annan funktion än att spela in och spåra
linger.msLång0MediumProducentgruppen kommer att aggregera alla meddelanden som anländer mellan förfrågan och sändningen, och registrera en separat batch av förfrågningar. Vanligtvis händer detta bara när posten genereras snabbare än sändningshastigheten. Men under vissa förhållanden vill klienten minska antalet förfrågningar, eller till och med till en måttlig belastning. Denna uppsättning görs genom att lägga till en liten fördröjning – det vill säga, istället för att skicka en post omedelbart, väntar producenten på en given fördröjningstid för att tillåta andra meddelandeposter att skickas, vilka kan batchas. Detta kan betraktas som en liknande algoritm som TCP Nagle. Denna inställning sätter en högre latensgräns för batching: när vi får batch.size för en partition skickas den omedelbart oavsett denna inställning, men om vi får ett meddelande med mycket mindre byteantal än denna inställning måste vi "dröja" en specifik tid för att få fler meddelanden. Denna inställning är standardinställning 0, alltså ingen fördröjning. Att sätta linger.ms=5, till exempel, minskar antalet förfrågningar, men ökar samtidigt fördröjningen med 5 ms.
max.request.sizeint1028576MediumDet maximala antalet bytes som begärs. Detta är också en effektiv täckning för maximal registrerad storlek. Notera: Servern har sin egen överskrivning av meddelandepoststorlekar, som skiljer sig från denna inställning. Denna inställning begränsar antalet förfrågningar som producenter kan skicka i bulk åt gången för att förhindra ett stort antal förfrågningar.
receive.buffer.bytesint32768MediumTCP receivecache-storlek, som används vid dataläsning
send.buffer.bytesint131072MediumTCP sändcachestorlek, som används vid datasändning
timeout.msint30000MediumDetta konfigurationsalternativ styr den maximala tiden servern väntar på bekräftelse från följare. Om antalet bekräftade förfrågningar inte uppfylls inom denna tid returneras ett fel. Denna timeout-gräns mäts på serversidan och har ingen nätverkslatens inklusive förfrågningar
block.on.buffer.fullBooleskttruelågtNär vår minnescache tar slut måste vi sluta ta emot nya meddelandeposter eller kasta fel. Som standard är detta inställt på sant, men viss blockering kan vara oväntad, så det är bättre att ge ett felmeddelande direkt. Detta är fallet när posten är inställd på false: producenten kastar ett undantagsfel: BufferExhaustedException om posten har skickats och cachen är full
metadata.fetch.timeout.msLång60000lågtDet syftar på förstahandsdata för vissa element som vi har erhållit. Elementen inkluderar: ämne, värd, partitioner. Denna konfiguration avser den tid som krävs för att elementet ska slutföras framgångsrikt enligt hämtningen, annars skickas ett undantag till klienten.
metadata.max.age.msLång300000lågtTid i mikrosekunder är intervallet då vi tvingar metadata att uppdateras. Även om vi inte ser några ledarskapsförändringar vid delningen.
metric.reportersLista[]lågtEn lista över klasser som används för att mäta mätvärden. Implementeringen av MetricReporter-gränssnittet kommer att möjliggöra tillägg av klasser som ändras när nya mätvärden genereras. JmxReporter kommer alltid att inkludera ett sätt att registrera JMX-statistik
metrics.num.samplesint2lågtAntalet prover som används för att underhålla mätvärden
metrics.sample.window.msLång30000lågtMetrics-systemet håller ett konfigurerbart antal prover i en korrigerbar fönsterstorlek. Denna konfiguration konfigurerar till exempel fönsterstorleken. Vi kan behålla två prover under 30 sekunder. När ett fönster rullas ut suddar vi och skriver om det äldsta fönstret
recoonect.backoff.msLång10lågtNär anslutningen bryts, väntetiden när vi återansluter igen. Detta undviker upprepade klientanslutningar
retry.backoff.msLång100lågtVäntetiden innan man försöker försöka igen en misslyckad förfrågan om grönsaker. Undvik att fastna i en skicka-fail dead loop.




Föregående:【Practice】Eclipse installerar lombok-pluginet
Nästa:Java JMX är enkelt att förstå och använda
 Hyresvärd| Publicerad på 2021-11-02 14:10:57 |
server.properties-konfiguration

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com