Brokeru konfigurācijas
| Īpašums | Noklusējuma | Apraksts | | broker.id | | Katru brokeri var identificēt ar unikālu, nenegatīvu veselu skaitli ID; Šo ID var izmantot kā brokera "nosaukumu", un tā esamība ļauj brokerim migrēt uz citu resursdatoru / portu, nemulsinot patērētājus. Jūs varat izvēlēties jebkuru numuru, kas jums patīk kā ID, ja ID ir unikāls. | | log.dirs | /tmp/kafka-logs | Ceļš, kurā kafka glabā datus. Šis ceļš nav unikāls, tas var būt vairāki, un ceļi ir jāatdala tikai ar komatiem; Ikreiz, kad tiek izveidots jauns nodalījums, tiek izvēlēts to darīt ceļā, kurā ir vismazākais nodalījumu skaits. | | Osta | 6667 | Serveris pieņem portu, ar kuru klients pieslēdzas | | zookeeper.connect | nulle | ZooKeeper savienojuma virknes formāts ir: hostname:port, kur resursdatora nosaukums un ports ir attiecīgi ZooKeeper klastera mezgla resursdators un ports. Lai izveidotu savienojumu ar citiem ZooKeeper mezgliem, kad resursdators nedarbojas, varat izveidot vairākus saimniekdatorus šādi:
hostname1:port1, hostname2:port2, hostname3:port3.
ZooKeeper ļauj jums pievienot "chroot" ceļu, lai saglabātu visus kafka datus klasterī ar noteiktu ceļu. Ja vairāki Kafka klasteri vai citas lietojumprogrammas izmanto vienu un to pašu ZooKeeper klasteri, varat izmantot šo metodi, lai iestatītu datu glabāšanas ceļu. To var īstenot, formatējot savienojuma virkni šādi: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path Šis iestatījums saglabā visus kafka klastera datus ceļā /chroot/path. Ņemiet vērā, ka pirms brokera palaišanas jums ir jāizveido šis ceļš, un patērētājiem ir jāizmanto tas pats savienojuma formāts. | | message.max.baiti | 1000000 | Maksimālais ziņojumu lielums, ko serveris var saņemt. Ir svarīgi, lai patērētāja un ražotāja iestatījumi attiecībā uz šo īpašumu būtu sinhronizēti, pretējā gadījumā ražotāja publicētais ziņojums patērētājam ir pārāk liels. | | num.network.threads | 3 | Tīkla pavedienu skaits, ko serveris izmanto tīkla pieprasījumu apstrādei; Parasti šis rekvizīts nav jāmaina. | | num.io.threads | 8 | I/O pavedienu skaits, ko serveris izmanto pieprasījumu apstrādei; Pavedienu skaitam jābūt vismaz vienādam ar cieto disku skaitu. | | fons.pavedieni | 4 | Fona apstrādei, piemēram, failu dzēšanai, izmantoto pavedienu skaits; Šis rekvizīts nav jāmaina. | | queued.max.Pieprasījumi | 500 | Maksimālais pieprasījumu skaits, ko var ievietot rindā, lai I/O pavediens tiktu apstrādāts, pirms tīkla pavediens pārtrauc lasīt jaunus pieprasījumus. | | host.name | nulle | brokera resursdatora nosaukums; Ja resursdatora nosaukums jau ir iestatīts, brokeris būs saistīts tikai ar šo adresi; Ja nav iestatījuma, tas saistīsies ar visām saskarnēm un publicēs vienu kopiju ZK | | advertised.host.name | nulle | Ja tas ir iestatīts, tas tiek nosūtīts ražotājiem, patērētājiem un citiem brokeriem kā brokera resursdatora nosaukums | | reklamēts.osta | nulle | Šī osta tiek dota ražotājiem, patērētājiem un citiem starpniekiem, un to izmanto, lai izveidotu savienojumu; Tas ir jāiestata tikai tad, ja faktiskais ports un ports, kas serverim ir jāsaista, atšķiras. | | socket.send.buffer.bytes | 100 * 1024 | SO_SNDBUFF Kešatmiņas lielums, ko serveris izmanto, lai izveidotu ligzdu savienojumus | | socket.receive.buffer.bytes | 100 * 1024 | SO_RCVBUFF kešatmiņas lielumu, ko serveris izmanto, lai izveidotu savienojumu ar ligzdām | | socket.request.max.baiti | 100 * 1024 * 1024 | Maksimālais servera atļautais pieprasījuma lielums; Tas novērsīs servera pārplūdi, kurai jābūt mazākai par Java kaudzes lielumu | | skaits.starpsienas | 1 | Ja, veidojot tēmu, starpsienu skaits netiek norādīts, šis numurs būs noklusējuma nodalījumu skaits zem tēmas. | | žurnāls.segments.baiti | 1014*1024*1024 | Tēmas nodalījuma žurnāli tiek glabāti daudzos failos noteiktā direktorijā, kas sadala nodalījuma žurnālus segmentos; Šis atribūts ir katra faila maksimālais lielums; Kad kategorijas sasniedz šo vērtību, tiek izveidots jauns fails. Šo iestatījumu var ignorēt, pamatojoties uz katras tēmas pamatu. Skatīt Hipersaites pieteikšanās ir redzama. | | žurnāls.rullis.stundas | 24 * 7 | Pat ja fails nesasniedz log.segment.bytes, jauns fails tiek izveidots ikreiz, kad faila izveides laiks sasniedz šo rekvizītu. Šo iestatījumu var ignorēt arī tēmas līmeņa iestatījumi; SkatsHipersaites pieteikšanās ir redzama. | | log.cleanup.policy | svītrot | | | log.retention.minutes un log.retention.hours | 7 dienas | Laiks, kad katrs žurnālfails tika saglabāts pirms tā dzēšanas. Noklusējuma datu taupīšanas laiks ir vienāds visām tēmām. log.retention.minutes un log.retention.bytes tiek izmantoti, lai iestatītu žurnālfailu dzēšanu neatkarīgi no tā, kurš rekvizīts ir pārpildīts. Šo rekvizīta iestatījumu var ignorēt, ja tēma ir pamatā iestatīta. SkatsHipersaites pieteikšanās ir redzama. | | log.retention.bytes | -1 | Kopējais datu apjoms, kas saglabāts katrā nodalījumā katrā tēmā; Ņemiet vērā, ka šī ir augšējā robeža vienam nodalījumam, tāpēc šis skaitlis, kas reizināts ar starpsienu skaitu, ir kopējais datu apjoms, kas tiek glabāts katrā tēmā. Ņemiet vērā arī: ja ir iestatīti gan log.retention.hours, gan log.retention.bytes, pārsniedzot kādu no ierobežojumiem, segmenta fails tiks izdzēsts. Ņemiet vērā, ka šo iestatījumu var ignorēt katra tēma. SkatsHipersaites pieteikšanās ir redzama. | | log.retention.check.interval.ms | 5 minūtes | Pārbaudiet intervālu starp žurnāla segmentētajiem failiem, lai noteiktu, vai faila atribūti atbilst dzēšanas prasībām. | | log.cleaner.enable | false | Ja šis rekvizīts ir iestatīts uz false, tas tiks izdzēsts, tiklīdz žurnāls tiks saglabāts maksimālo laiku vai lielumu. Ja iestatīts uz true, tas notiks, kad saglabāšanas atribūts sasniegs augšējo robežuHipersaites pieteikšanās ir redzama.。 | | log.cleaner.threads | 1 | Pavedienu skaits, kas veic žurnālu saspiešanu | | log.cleaner.io.max.baiti.sekundē | Neviens | Maksimālais I/O skaits, kas var būt baļķu tīrītājam, veicot baļķu blīvēšanu. Šis iestatījums ierobežo tīrītāju, lai netraucētu aktīvo pieprasījumu pakalpojumus. | | log.cleaner.io.buffer.size | 500*1024*1024 | Log Cleaner indeksē žurnālus tīrīšanas procesa laikā un samazina izmantotās kešatmiņas lielumu. Vislabāk ir iestatīt to lielu, lai nodrošinātu pietiekamu atmiņu. | | log.cleaner.io.buffer.load.factor | 512*1024 | I/O gabala lielums, kas nepieciešams baļķu tīrīšanai. Šis iestatījums nav jāmaina. | | log.cleaner.io.buffer.load.factor | 0.9 | baļķu tīrīšanā izmantotās jaucējtabulas slodzes koeficients; Šī opcija nav jāmaina. | | log.cleaner.backoff.ms | 15000 | Tiek veikts laika intervāls, kurā tiek iztīrīts žurnāls | | log.cleaner.min.cleanable.ratio | 0.5 | Šī konfigurācija kontrolē, cik bieži baļķu blīvētājs mēģina iztīrīt baļķus (pieņemot, kaHipersaites pieteikšanās ir redzama.ir atvērts). Pēc noklusējuma izvairieties no vairāk nekā 50% baļķu tīrīšanas. Šī attiecība ir saistīta ar maksimālo vietu, ko patērē rezerves žurnāls (50% žurnālu ir saspiesti 50%). Augstāka likme nozīmē mazāk atkritumu un vairāk vietas var iztīrīt efektīvāk. Šo iestatījumu var ignorēt katrā tēmas iestatījumā. SkatsHipersaites pieteikšanās ir redzama.。 | | log.cleaner.delete.retention.ms | 1diena | uzglabāšanas laiks; Maksimālais laiks saspiestu žurnālu glabāšanai; Tas ir arī maksimālais laiks, kad klients patērē ziņojumus, un atšķirība starp log.retention.minutes ir tāda, ka viens kontrolē nesaspiestos datus, bet otrs kontrolē saspiestos datus, kas tiks pārrakstīti par norādīto laiku, kad tēma tiek izveidota. | | log.index.size.max.baiti | 10*1024*1024 | Maksimālais baļķu segmenta lielums. Ņemiet vērā, ka, ja žurnāla lielums sasniedz šo vērtību, ir jāģenerē jauns žurnāla segments pat tad, ja lielums nepārsniedz log.segment.bytes ierobežojumu. | | log.index.interval.bytes | 4096 | Veicot iegūšanu, jums ir jāskenē tuvākais nobīde ar noteiktu vietu, jo lielāks iestatījums, jo labāk, parasti izmantojiet noklusējuma vērtību | | log.flush.interval.messages | Long.MaxValue | Žurnālfails "sinhronizēts" ar disku pirms ziņojumu uzkrāšanas. Tā kā diska IO operācijas ir lēna darbība, bet arī nepieciešams līdzeklis "datu uzticamībai", pārbaudiet, vai ir nepieciešams laika intervāls, lai izārstētu cieto disku. Ja šī vērtība ir pārāk liela, tas novedīs pie pārāk ilga "sinhronizācijas" laika (IO bloķēšana), ja šī vērtība ir pārāk maza, tas novedīs pie ilga "fsync" laika (IO bloķēšana), ja šī vērtība ir pārāk maza, tas novedīs pie liela skaita "sinhronizācijas" reižu, kas nozīmē, ka kopējam klienta pieprasījumam ir noteikta kavēšanās, un fiziskā servera kļūme novedīs pie ziņojumu zaudēšanas bez fsync. | | log.flush.scheduler.interval.ms | Long.MaxValue | Pārbaudiet, vai ir nepieciešami fsync intervāli | | log.flush.interval.ms | Long.MaxValue | Šis numurs tiek izmantots, lai kontrolētu "fsync" laika intervālu, ja ziņojumu skaits nekad nesasniedz diskā nostiprināto ziņojumu skaitu, bet laika intervāls no pēdējās diska sinhronizācijas sasniedz slieksni, tiks aktivizēta arī diska sinhronizācija. | | log.delete.delay.ms | 60000 | Saglabāšanas laiks pēc faila notīrīšanas indeksā parasti nav jāmaina | | auto.create.topics.enable | true | Vai atļaut automātisku tēmu izveidi. Ja tā ir taisnība, tas automātiski izveidos tēmu, kas nepastāv, kad ražošana vai iegūšana nepastāv. Pretējā gadījumā tēmas izveidei jāizmanto komandrinda | | controller.socket.timeout.ms | 30000 | Kontaktligzdas taimauta laiks, kad nodalījuma pārvaldības kontrolieris veic dublēšanu. | | kontrolieris.ziņojums.rinda.izmērs | Int.MaxValue | kontrolieris uz brokeri-channles | | noklusējums.replikācija.faktors | 1 | Rezerves kopiju noklusējuma skaits attiecas tikai uz automātiski izveidotām tēmām | | replica.lag.time.max.ms | 10000 | Ja sekotājs šajā laikā nenosūta atgūšanas pieprasījumu, līderis atkārtoti noņems sekotāju no ISR un uzskatīs, ka sekotājs ir pakārts | | replica.lag.max.ziņojumi | 4000 | Ja replikai ir vairāk nekā šis nedublēto skaits, līderis noņems sekotāju un uzskatīs, ka sekotājs ir pakārts | | replica.socket.timeout.ms | 30*1000 | Līdera taimauta laiks ligzdu tīkla pieprasījumiem, dublējot datus | | replica.socket.receive.buffer.bytes | 64*1024 | Ligzdas saņemšanas buferis, nosūtot tīkla pieprasījumu līderim dublēšanas laikā | | replica.fetch.max.baiti | 1024*1024 | Katra iegūšanas maksimālā vērtība dublēšanas brīdī | | replica.fetch.min.bytes | 500 | Maksimālais gaidīšanas laiks, līdz dati sasniedz līderi, kad vadītājs veic dublēšanas pieprasījumu | | replica.fetch.min.bytes | 1 | Mazākais atbildes lielums pēc katras iegūšanas dublēšanas laikā | | num.replica.fetchers | 1 | Pavedienu skaits, kas dublē datus no līnijas | | replica.high.watermark.checkpoint.interval.ms | 5000 | Katra kopija pārbauda, cik bieži tiek sacietēts augstākais ūdens līmenis | | fetch.purgatory.purge.interval.requests | 1000 | Iegūt pieprasījumu Attīrīšanas intervāls | | producer.purgatory.purge.interval.requests | 1000 | Producents pieprasa attīrīšanas intervālu | | zookeeper.session.timeout.ms | 6000 | Zoodārza uzturētāja sesijas taimauts. | | zookeeper.connection.timeout.ms | 6000 | Maksimālais laiks, ko klients gaida, lai izveidotu savienojumu ar zoodārza uzturētāju | | zookeeper.sync.time.ms | 2000 | ZK sekotājs visilgāk atpaliek no ZK līdera | | kontrolēts.shutdown.enable | true | Vai ir iespējams kontrolēt brokera slēgšanu. Ja iespējams, brokeris pirms slēgšanas varēs pārvietot visus līderus uz citiem brokeriem. Tas samazina nepieejamību izslēgšanas procesa laikā. | | controlled.shutdown.max.atkārtoti mēģinājumi | 3 | Komandu skaits, kas var sekmīgi izpildīt izslēgšanu pirms nepilnīgas izslēgšanas. | | controlled.shutdown.retry.backoff.ms | 5000 | Atgriešanās laiks starp izslēgumiem | | auto.leader.rebalance.enable | true | Ja tā ir taisnība, kontrolieris automātiski līdzsvaros brokeru vadību pār starpsienām | | līderis.nelīdzsvarotība.per.brokeris.procenti | 10 | Maksimālais nelīdzsvarotības koeficients, ko pieļauj katrs brokeris | | līderis.nelīdzsvarotība.pārbaudīt.intervāls.sekundes | 300 | Pārbaudiet līdera nelīdzsvarotības biežumu | | offset.metadata.max.baiti | 4096 | Ļauj klientiem saglabāt maksimālo nobīdes skaitu | | max.connections.per.ip | Int.MaxValue | Maksimālo savienojumu skaitu vienam brokerim var veikt uz katru IP adresi | | max.connections.per.ip.overrides | | Maksimālais noklusējuma savienojuma pārklājums uz IP vai resursdatora nosaukumu | | connections.max.idle.ms | 600000 | Taimauta ierobežojums tukšiem savienojumiem | | log.roll.jitter. {ms,stundas} | 0 | Maksimālais trīču skaits, kas iegūts no logRollTimeMillis | | num.recovery.threads.per.data.dir | 1 | Pavedienu skaits, ko katrs datu direktorijs izmanto atkopšanas reģistrēšanai | | netīrs.līderis.vēlēšanās.iespējot | true | Norāda, vai ISR ir iespējams izmantot iestatījumu non-replicas | | dzēst.topic.enable | false | Var dzēst tēmas | | offsets.topic.num.partitions | 50 | Starpsienu skaits korespondenta tēmai. Tā kā šī pakalpojuma maiņa pēc izvietošanas pašlaik netiek atbalstīta, ieteicams izmantot augstāku iestatījumu ražošanai (piemēram, 100–200). | | ofsets.topic.retention.minutes | 1440 | Nobīdes, kas pastāvējušas ilgāk par šo laika ierobežojumu, tiks atzīmētas kā gaidāmas dzēšanas | | offsets.retention.check.interval.ms | 600000 | Ofseta pārvaldnieks pārbauda novecojušo nobīdes biežumu | | ofsets.topic.replication.factor | 3 | Tēmas nobīdes dublējumkopiju skaits. Ieteicams iestatīt lielākus numurus, lai garantētu lielāku pieejamību | | offset.topic.segment.bytes | 104857600 | kompensē tēmu. | | offsets.load.buffer.size | 5242880 | Šis iestatījums ir saistīts ar partijas lielumu un tiek izmantots, lasot no nobīdes segmenta. | | offsets.commit.required.acks | -1 | Apstiprinājumu skaits ir jāiestata, pirms korespondents ir pieņemams, un parasti tas nav jāmaina |
| Īpašums | Noklusējuma | Servera noklusējuma rekvizīts | Apraksts | | tīrīšana.politika | svītrot | log.cleanup.policy | Vai nu "dzēst" vai "kompakts"; Šī virkne norāda, kā izmantot veco žurnāla daļu; Noklusējuma metode ("dzēst") izmetīs veco daļu, kad būs sasniegts to pārstrādes laiks vai izmēra ierobežojums. "kompakts" saspiedīs baļķus | | delete.retention.ms | 86400000 (24 stundas) | log.cleaner.delete.retention.ms | Atšķirība starp log.retention.minutes ir tāda, ka viens kontrolē nesaspiestus datus, bet otrs kontrolē saspiestus datus. Šo konfigurāciju var ignorēt piesprausšanas parametri, kad tiek izveidota tēma | | flush.ziņojumi | Neviens | log.flush.interval.messages | Šī konfigurācija norāda laika intervālu, lai piespiest fsync žurnālus. Piemēram, ja šī opcija ir iestatīta uz 1, tad fsync ir nepieciešams pēc katra ziņojuma, un, ja iestatīts uz 5, fsync ir nepieciešams katriem 5 ziņojumiem. Kopumā ieteicams neiestatīt šo vērtību. Šī parametra iestatīšanai ir nepieciešams nepieciešamais kompromiss starp "datu uzticamību" un "veiktspēju". Ja šī vērtība ir pārāk liela, tas katru reizi izraisīs ilgu laiku "fsync" (IO bloķēšana), un, ja šī vērtība ir pārāk maza, tas novedīs pie liela skaita "fsync", kas nozīmē arī to, ka kopējā klienta pieprasījumā ir zināma aizkavēšanās. Fiziska servera kļūme izraisīs ziņojumu zudumu bez fsync. | | flush.ms | Neviens | log.flush.interval.ms | Šī konfigurācija tiek izmantota, lai piespraustu laika intervālu starp fsync žurnālu piespiešanu diskam; Piemēram, ja iestatīts uz 1000, tad fsync ir nepieciešams ik pēc 1000 ms. Šī opcija parasti nav ieteicama | | indekss.intervāls.baiti | 4096 | log.index.interval.bytes | Noklusējuma iestatījums nodrošina, ka ziņojumam tiek pievienots indekss ik pēc 4096 baitiem, un vairāk indeksu padara lasāmo ziņojumu tuvāku, bet indeksa lielums tiks palielināts. Šī opcija parasti nav nepieciešama | | maks.ziņojums.baiti | 1000000 | maks.ziņojums.baiti | Kafkas pievienošanas ziņojuma maksimālais lielums. Ņemiet vērā, ka, palielinot šo lielumu, jums ir jāpalielina arī patērētāja iegūšanas lielums, lai patērētājs varētu iegūt ziņojumus līdz maksimālajam izmēram. | | min.tīrāms.netīrs.attiecība | 0.5 | min.tīrāms.netīrs.attiecība | Šī konfigurācija kontrolē, cik bieži žurnālu kompresors mēģina iztīrīt žurnālus. Pēc noklusējuma tiks izvairīti no žurnāliem, kuru saspiešanas pakāpe pārsniedz 50%. Šī attiecība ļauj izvairīties no vislielākās telpas izšķērdēšanas | | min.insync.replicas | 1 | min.insync.replicas | Ja producents ir iestatīts uz request.required.acks uz -1, min.insync.replicas norāda minimālo repliku skaitu (katrai repica rakstīšanai jābūt veiksmīgai), un, ja šis skaitlis netiek sasniegts, producents radīs izņēmumu. | | saglabāšana.baiti | Neviens | log.retention.bytes | Ja izmantojat saglabāšanas politiku "dzēst", šī konfigurācija attiecas uz maksimālo lielumu, ko žurnāls var sasniegt pirms tā dzēšanas. Pēc noklusējuma nav lieluma ierobežojuma, bet tikai laika ierobežojums | | retention.ms | 7 dienas | log.retention.minutes | Ja izmantojat saglabāšanas politiku "dzēst", šī konfigurācija attiecas uz laiku, kad žurnāls tika saglabāts pirms dzēšanas žurnāla. | | segments.baiti | 1 GB | žurnāls.segments.baiti | Kafkā žurnālu žurnāli tiek glabāti gabalos, un šī konfigurācija attiecas uz gabalos sadalīto žurnālu lielumu | | segments.indekss.baiti | 10 MB | log.index.size.max.baiti | Šī konfigurācija ir aptuveni indeksa faila lielums, kas kartēts starp nobīdēm un failu atrašanās vietām; Šī konfigurācija parasti nav jāmaina | | segment.ms | 7 dienas | žurnāls.rullis.stundas | Pat ja žurnāla gabala fails nesasniedz dzēšamo vai saspiesto lielumu, tiklīdz žurnāla laiks sasniegs šo augšējo robežu, tiks piespiests jauns žurnāla gabala fails | | segment.jitter.ms | 0 | log.roll.jitter. {ms,stundas} | Maksimālā trīce, kas jāatņem no logRollTimeMillis. |
Patērētāju konfigurācijas
| Īpašums | Noklusējuma | Apraksts | | group.id | | Virkne, kas unikāli identificē grupu, kurā atrodas patērētāja process, un, ja ir iestatīts tas pats grupas ID, tas nozīmē, ka šie procesi pieder tai pašai patērētāju grupai | | zookeeper.connect | | Norādiet Zookeeper savienojuma virkni, formāts ir hostname:port, šeit resursdators un osta ir gan Zookeeper servera resursdators, gan ports, lai izvairītos no kontakta zaudēšanas pēc Zookeeper mašīnas nokrišanas, varat norādīt vairākus hostname:ports, izmantojot komatus kā atdalīšanu: resursdatora nosaukums1:ports1,resursdatora nosaukums2:ports2,resursdatora nosaukums3:ports3 Jūs varat pievienot ZooKeeper chroot ceļu ZooKeeper savienojuma virknei, kas tiek izmantota savu datu glabāšanai, tādā veidā: hostname1:port1,hostname2:port2,hostname3:port3/chroot/path | | consumer.id | nulle | Iestatīšana nav nepieciešama, un parasti tā tiek ģenerēta automātiski | | socket.timeout.ms | 30*100 | Tīkla pieprasījumu taimauta ierobežojumi. Patiesais taimauta ierobežojums ir max.fetch.wait+socket.timeout.ms | | socket.receive.buffer.bytes | 64*1024 | Ligzda tiek izmantota, lai saņemtu tīkla pieprasījumu kešatmiņas lielumu | | fetch.message.max.baiti | 1024*1024 | Maksimālais baitu skaits vienā izgūšanas ziņojumā vienā iegūšanas pieprasījumā. Šie baiti tiks uzraudzīti katram nodalījumam izmantotajā atmiņā, tāpēc šis iestatījums kontrolēs patērētāja izmantotās atmiņas apjomu. Iegūšanas pieprasījuma lielumam jābūt vismaz vienādam ar maksimālo ziņojuma lielumu, ko pieļauj serveris, pretējā gadījumā ziņojuma lielums, ko ražotājs var nosūtīt, ir lielāks par apjomu, ko patērētājs var patērēt. | | num.consumer.fetchers | 1 | Datu iegūšanai izmantoto iegūšanas pavedienu skaits | | auto.commit.enable | true | Ja tā ir patiesa, patērētāja saņemtā ziņojuma nobīde tiks automātiski sinhronizēta ar zoodārza turētāju. Šo saistību nobīdi jaunais patērētājs izmantos, kad process uzkars | | auto.commit.interval.ms | 60*1000 | Biežums, kādā patērētājs iesniedz kompensāciju zoodārza turētājam, ir sekundēs | | queued.max.message.chunks | 2 | Maksimālais ziņojumu skaits, kas tiek izmantots kešatmiņā patēriņam. Katram gabalam jābūt tādam pašam kā fetch.message.max.baitiem | | rebalance.max.atkārtoti mēģinājumi | 4 | Kad patērētāju grupai tiek pievienots jauns patērētājs, patērētāju kopums cenšas līdzsvarot katram patērētājam piešķirto nodalījumu skaitu. Ja mainās patērētāju iekasēšana, šī līdzsvarošana neizdodas un atkal tiek īstenota, kad tiek veikta piešķiršana | | fetch.min.baiti | 1 | Minimālais baitu skaits, kas serverim jāatgriež ar katru iegūšanas pieprasījumu. Ja netiek atgriezts pietiekami daudz datu, pieprasījums gaida, līdz tiek atgriezts pietiekami daudz datu. | | fetch.wait.max.ms | 100 | Ja nav pietiekami daudz datu, lai apmierinātu fetch.min.bytes, šī konfigurācija attiecas uz maksimālo laiku, ko serveris bloķēs pirms atbildes uz iegūšanas pieprasījumu. | | rebalance.backoff.ms | 2000 | Atgriešanās laiks pirms atkārtotas pārbaudes mēģinājuma | | refresh.leader.backoff.ms | 200 | Ir jāgaida laiks, pirms mēģināt noteikt, vai nodalījuma līderis ir zaudējis savu vadību | | auto.offset.reset | lielākais | Ja zookeeper nav inicializētas nobīdes, ja nobīde ir atbilde uz šādu vērtību: mazākais: automātiska nobīde uz mazāko nobīdi lielākais: automātiskā atiestatīšana nobīde uz lielāko nobīdi jebkas cits: izmet izņēmumu patērētājam | | consumer.timeout.ms | -1 | Ja ziņojums nav pieejams, pat pēc noteikta laika gaidīšanas tiek izmests taimauta izņēmums | | izslēgt.iekšējās.tēmas | true | Vai patērētājiem parādīt ziņojumus no iekšējām tēmām | | paritition.uzdevums.stratēģija | diapazons | Atlasiet politiku nodalījumu piešķiršanai patērētāja plūsmai, pēc izvēles diapazons, apaļš | | client.id | Grupas ID vērtība | ir lietotājam specifiska virkne, kas palīdz izsekot zvanus katrā pieprasījumā. Tam loģiski jāapstiprina lietojumprogramma, kas ģenerēja pieprasījumu | | zookeeper.session.timeout.ms | 6000 | Zoodārza uzturētāju sesiju taimauta ierobežojumi. Ja patērētājs šajā laikā nenosūta sirdsdarbības ziņojumu zoodārza turētājam, tas tiek uzskatīts par pakārtu un tiks ģenerēta līdzība | | zookeeper.connection.timeout.ms | 6000 | Maksimālais gaidīšanas laiks, lai klients izveidotu Zookeeper savienojumu | | zookeeper.sync.time.ms | 2000 | ZK sekotāji var maksimāli atpalikt no ZK līdera | | ofsets.uzglabāšana | Zoodārza uzturētājs | Vietas, ko izmanto nobīdes glabāšanai: zoodārza uzturētājs vai kafka | | offset.channel.backoff.ms | 1000 | Atpakaļgaitas laiks, kad atkārtoti izveidots savienojums ar nobīdes kanālu vai atkārtoti mēģināts iegūt / izpildīt neveiksmīgās nobīdes pieprasījumu | | offsets.channel.socket.timeout.ms | 10000 | Ligzdas taimauta ierobežojums atbildei uz atgūšanas/izpildes pieprasījuma atbildi, nolasot nobīdi. Šo taimauta ierobežojumu izmanto patērētāja metadatu pieprasījums, lai pieprasītu nobīdes pārvaldību | | offsets.commit.max.atkārtoti mēģinājumi | 5 | Cik reižu korespondents tika atkārtots. Šis atkārtotais mēģinājums tiek lietots tikai kompensācijas saistībām starp izslēgšanu. viņš | | dual.commit.enabled | true | Ja izmantojat "kafka" kā offsets.storage, jūs varat veikt nobīdi zookeeper divas reizes (un vienu reizi kafka). Tas ir obligāti, migrējot no zoodārza turētāja ofseta krātuves uz kafkas bāzes ofseta krātuvi. Jebkurai patērētāju grupai ir drošs ieteikums izslēgt šo opciju, kad migrācija ir pabeigta | | partition.assignment.strategy | diapazons | Izvēlieties starp "diapazona" un "apaļā" politikām kā politiku nodalījumu piešķiršanai patērētāju datu plūsmām; Apļveida starpsienu sadalītājs sadala visas pieejamās starpsienas, kā arī visus pieejamos patērētāju pavedienus. Tas piešķirs nodalījuma cilpu patērētāja pavedienam. Ja visi patērētāju gadījumi ir parakstīti uz noteiktu, starpsienas tiek sadalītas deterministiskos sadalījumos. Apaļā sadales stratēģija ir iespējama tikai tad, ja ir izpildīti šādi nosacījumi: (1) Katrai tēmai ir vienāds datu plūsmu skaits uz patērētāja stiprumu. (2) Abonēto tēmu kolekcija tiek noteikta katram patērētāju grupas gadījumam. |
Producentu konfigurācijas
| Īpašums | Noklusējuma | Apraksts | | metadati.broker.saraksts | | Pasniedziet bootstrapping. Producents tiek izmantots tikai, lai iegūtu metadatus (tēmas, starpsienas, replikas). Ligzdas savienojums faktisko datu nosūtīšanai tiks izveidots, pamatojoties uz atgrieztajiem metadatu datiem. Formāts ir: host1:port1,host2:port2 Šis saraksts var būt brokeru apakšsaraksts vai VIP, kas norāda uz brokeriem | | pieprasījums.nepieciešams.acks | 0 | Šī konfigurācija ir apstiprinājuma vērtība, kas norāda, kad ražošanas pieprasījums tiek uzskatīts par pabeigtu. Jo īpaši, cik daudziem citiem brokeriem ir jāiesniedz dati savos žurnālos un jāapstiprina šī informācija savam vadītājam. Tipiskās vērtības ir šādas: 0: norāda, ka ražotājs nekad negaida apstiprinājumu no brokera (tāda pati darbība kā 0,7). Šī opcija nodrošina vismazāko latentumu, bet tajā pašā laikā vislielāko risku (jo dati tiek zaudēti, kad serveris nedarbojas). 1: norāda, ka līdera replika ir saņēmusi datu apstiprinājumu. Šai opcijai ir zems latentums, un tā nodrošina, ka serveris apstiprina, ka tā ir saņemta. -1: Producents saņem apstiprinājumu, ka visas sinhronizētās kopijas ir saņēmušas datus. Latentums ir vislielākais, tomēr šī metode pilnībā nenovērš ziņojumu zaudēšanas risku, jo sinhronizēto repliku skaits var būt 1. Ja vēlaties nodrošināt, ka dažas replikas saņem datus, tēmas līmeņa iestatījumos jāiestata opcija min.insync.replicas. Izlasiet dizaina dokumentāciju, lai iegūtu padziļinātu diskusiju. | | request.timeout.ms | 10000 | Brokeris cenšas īstenot request.required.acks prasību, pretējā gadījumā klientam tiks nosūtīta kļūda | | ražotājs.tips | Sinhronizācija | Šī opcija nosaka, vai ziņojums tiek nosūtīts asinhroni fona pavedienā. Pareizās vērtības: (1) asinhrona: asinhrona sūtīšana (2) sinhronizācija: sinhronizēta sūtīšana Iestatot ražotāju uz asinhronu, mēs varam apstrādāt pieprasījumus partijās (kas ir labi lielākai caurlaidspējai), bet tas arī rada iespēju, ka klienta mašīna zaudēs nenosūtītos datus | | serializators.klase | kafka.serializer.DefaultEncoder | Ziņojuma serializācijas kategorija. Noklusējuma kodētājs ievada vienu baitu[] un atgriež to pašu baitu[] | | key.serializer.class | | Atslēgvārdu serializācijas klase. Ja tas nav norādīts, noklusējums atbilst ziņojumam | | sadalītājs.klase | kafka.producer.DefaultPartitioner | sadalītāja klase, lai sadalītu ziņojumus starp apakštēmām. Noklusējuma sadalītājs ir balstīts uz atslēgas jaucējkodu tabulu | | saspiešana.kodeku | neviens | Šis parametrs var iestatīt kodeku datu saspiešanai, ko var izvēlēties kā "nav", "gzip", "snappy". | | saspiestas.tēmas | nulle | Šo parametru var izmantot, lai iestatītu, vai noteiktas tēmas ir saspiestas. Ja saspiestais kodeku nav NoCompressCodec, šie kodeki tiek lietoti norādītajiem tēmu datiem. Ja saspiesto tēmu saraksts ir tukšs, lietojiet konkrēto saspiesto kodeku visām tēmām. Ja saspiestais kodeku ir NoCompressionCodec, saspiešana nav pieejama visām tēmām. | | message.send.max.atkārtoti mēģinājumi | 3 | Šis parametrs liks ražotājam automātiski atkārtoti mēģināt neveiksmīgus sūtīšanas pieprasījumus. Šis parametrs nosaka mēģinājumu skaitu. Piezīme: Iestatot vērtību, kas nav 0, atkārtosies noteiktas tīkla kļūdas: izraisīs sūtīšanu un apstiprinājuma zaudēšanu | | retry.backoff.ms | 100 | Pirms katra atkārtota mēģinājuma producents atjaunina attiecīgās tēmas metadatus, lai redzētu, vai ir piešķirts jaunais vadītājs. Tā kā līdera izvēle aizņem nedaudz laika, šī opcija norāda, cik ilgi ražotājam jāgaida pirms metadatu atjaunināšanas. | | topic.metadata.refresh.interval.ms | 600*1000 | Producents parasti atjaunina tēmas metadatus dažos kļūmju scenārijos (trūkst nodalījuma, līderis nav pieejams utt.). Viņš izies cauri regulāram ciklam. Ja iestatāt negatīvu vērtību, metadati tiks atjaunināti tikai tad, ja tas neizdodas. Ja iestatīts uz 0, metadati tiek atjaunināti pēc katra ziņojuma nosūtīšanas (šī opcija nav ieteicama, jo sistēma patērē pārāk daudz). Svarīgi: atjauninājumi notiek tikai pēc ziņojuma nosūtīšanas, tāpēc, ja producents nekad nenosūta ziņojumu, metadati nekad netiek atjaunināti. | | queue.buffering.max.ms | 5000 | Maksimālais laika intervāls, kurā lietotājs saglabā datus kešatmiņā, kad tiek lietots asinhronais režīms. Piemēram, ja ziņojums ir iestatīts uz 100, ziņojumi 100 ms laikā tiks apstrādāti paketēs. Tas uzlabos caurlaidspēju, bet palielinās latentumu kešatmiņas dēļ. | | queue.buffering.max.ziņojumi | 10000 | Izmantojot asinhrono režīmu, ir jābloķē maksimālais nenosūtīto ziņojumu skaits, ko var saglabāt kešatmiņā rindā pirms producenta, vai arī dati ir jāzaudē | | partijas numurs.ziņojumi | 200 | Izmantojot asinhrono režīmu, varat partijas apstrādāt maksimālo ziņojumu skaitu. Vai arī ziņojumu skaits ir sasniedzis to tiešsaistē vai queue.buffer.max.ms ir pienākusi, un producents to apstrādās | | sūtīt.buferis.baiti | 100*1024 | ligzdas rakstīšanas kešatmiņas lielums | | client.id | “” | Šis klienta ID ir lietotājam specifiska virkne, kas ir iekļauta katrā pieprasījumā, lai izsekotu zvanu, un viņam loģiski jāspēj apstiprināt, ka lietojumprogramma ir veikusi pieprasījumu. |
Producentu konfigurācijas
| Vārds | Veids | Noklusējuma | Nozīme | Apraksts | | boostrap.serveri | Saraksts | | augsts | Resursdatora/portu grupa, lai izveidotu savienojumu ar kafkas klasteri. Dati tiks vienmērīgi ielādēti visos serveros neatkarīgi no tā, kurš serveris ir paredzēts bootstrapping. Šis saraksts ietekmē tikai inicializētos resursdatorus (kas tiek izmantoti, lai atklātu visus serverus). Šis saraksta formāts:
host1:port1,host2:port2,... Tā kā šie serveri tiek izmantoti tikai, lai inicializētu savienojumus, lai atklātu visas klastera dalības (kas var mainīties dinamiski), šajā sarakstā nav jāiekļauj visi serveri (iespējams, vēlaties vairāk nekā vienu serveri, lai gan šajā gadījumā viens serveris var nedarboties). Ja šajā sarakstā nav redzams neviens serveris, datu sūtīšana neizdosies, kamēr saraksts nav pieejams. | | Aks | virkne | 1 | augsts | Ražotājam ir nepieciešams signāls no servera, lai apstiprinātu saņemšanu pēc datu saņemšanas, un šī konfigurācija attiecas uz to, cik daudz šādu apstiprinājuma signālu ir nepieciešami procuderim. Šī konfigurācija faktiski atspoguļo datu dublējumu pieejamību. Tālāk norādītie iestatījumi ir izplatītākās opcijas. (1) acks=0: iestatīts uz 0 nozīmē, ka ražotājam nav jāgaida saņemtās informācijas apstiprinājums. Replika tiks nekavējoties pievienota ligzdas buferim un uzskatīta par nosūtītu. Nav garantijas, ka serveris šajā gadījumā ir veiksmīgi saņēmis datus, un konfigurācijas atkārtots mēģinājums nedarbosies (jo klients nezina, vai tas neizdevās), un atgriezeniskās saites nobīde vienmēr tiks iestatīta uz -1. (2) acks=1: Tas nozīmē, ka vismaz pagaidiet, kamēr līderis veiksmīgi ierakstīs datus vietējā žurnālā, bet ne visi sekotāji veiksmīgi rakstīs. Šajā gadījumā, ja sekotājs veiksmīgi nedublē datus un līderis atkal uzkarinās, ziņojums tiks zaudēts. (3) acks=all: Tas nozīmē, ka vadītājam ir jāgaida, kamēr visi dublējumi veiksmīgi raksta žurnālus, un šī stratēģija nodrošinās, ka dati netiks zaudēti, kamēr izdzīvo viens dublējums. Tā ir spēcīgākā garantija. (4) Ir iespējami arī citi iestatījumi, piemēram, acks=2, kam būs nepieciešams noteikts skaits acks, bet šī stratēģija parasti tiek izmantota reti. | | buferis.atmiņa | garš | 33554432 | augsts | Producentu var izmantot, lai kešatmiņā saglabātu datu atmiņas lielumu. Ja dati tiek ģenerēti ātrāk, nekā tie tiek nosūtīti brokerim, ražotājs bloķēs vai izmetīs izņēmumu, kas norādīts ar "block.on.buffer.full".
Šis iestatījums būs saistīts ar kopējo atmiņu, ko producents var izmantot, taču tas nav stingrs ierobežojums, jo ne visa ražotāja izmantotā atmiņa tiek izmantota kešatmiņai. Daļa papildu atmiņas tiek izmantota saspiešanai (ja tiek ieviesta saspiešana), un daļa tiek izmantota uzturēšanas pieprasījumiem. | | saspiešana.tips | virkne | neviens | augsts | Ražotājs ir saspiešanas veids, ko izmanto datu saspiešanai. Noklusējums ir nesaspiests. Pareizās opciju vērtības ir none, gzip, snappy. Saspiešanu vislabāk izmantot pakešu apstrādei, jo vairāk ziņojumu tiek apstrādāti partijās, jo labāka ir saspiešanas veiktspēja. | | Atkārtoti mēģinājumi | int | 0 | augsts | Iestatot vērtību, kas lielāka par 0, klients atkārtoti nosūtīs visus datus, tiklīdz šie dati neizdodas. Ņemiet vērā, ka šie atkārtotie mēģinājumi neatšķiras no tiem, kad klients saņem sūtīšanas kļūdu. Ļauj atkārtoti mēģināt mainīt datu secību, ja abi ziņojumu ieraksti tiek nosūtīti uz vienu un to pašu nodalījumu, pirmais ziņojums neizdodas, otrais ziņojums parādās agrāk nekā pirmais ziņojums. | | partijas lielums | int | 16384 | Vidējas intensitātes sāpes | Producents mēģinās ziņojumu ierakstus sadalīt, lai samazinātu pieprasījumu skaitu. Tas uzlabos veiktspēju starp klientu un serveri. Šī konfigurācija kontrolē pakešu apstrādes ziņojumu noklusējuma baitu skaitu. Netiek mēģināts apstrādāt ziņojumu baitus, kas ir lielāki par šo baitu skaitu. Brokeriem nosūtītie pieprasījumi saturēs vairākas partijas, kas saturēs vienu pieprasījumu katram nodalījumam. Mazākas partijas vērtības tiek izmantotas mazāk un var samazināt caurlaidspēju (0 izmantos tikai pakešu apstrādi). Lielākas partijas vērtības tērē vairāk atmiņas vietas, tāpēc jums ir jāpiešķir atmiņa noteiktām partijas vērtībām. | | client.id | virkne | | Vidējas intensitātes sāpes | Šī virkne tiek nosūtīta uz serveri, kad tiek veikts pieprasījums. Mērķis ir izsekot pieprasījumu avotam, lai ļautu dažām lietojumprogrammām ārpus IP/Port atļauto sarakstu nosūtīt informāciju. Šī lietotne var iestatīt jebkuru virkni, jo tai nav cita funkcionāla mērķa, izņemot ierakstīšanu un izsekošanu | | linger.ms | garš | 0 | Vidējas intensitātes sāpes | Ražotāju grupa apkopos visus ziņojumus, kas saņemti starp pieprasījumu un nosūtīšanu, reģistrējot atsevišķu pieprasījumu partiju. Parasti tas notiek tikai tad, ja ieraksts tiek ģenerēts ātrāk nekā sūtīšanas ātrums. Tomēr noteiktos apstākļos klients vēlēsies samazināt pieprasījumu skaitu vai pat mērenu slodzi. Šī iestatīšana tiks veikta, pievienojot nelielu aizkavi, t.i., tā vietā, lai nekavējoties nosūtītu ierakstu, producents gaidīs noteiktu aizkaves laiku, lai ļautu nosūtīt citus ziņojumu ierakstus, kurus var pakotnēt. To var uzskatīt par līdzīgu algoritmu TCP Nagle. Šis iestatījums nosaka augstāku latentuma robežu pakešošanai: tiklīdz mēs saņemam nodalījuma batch.size, tas nekavējoties nosūtīs to neatkarīgi no šī iestatījuma, bet, ja mēs saņemam ziņojumu ar daudz mazāku baitu skaitu nekā šis iestatījums, mums ir nepieciešams "kavēties" noteiktu laiku, lai saņemtu vairāk ziņojumu. Šis iestatījums pēc noklusējuma ir 0, t.i., bez kavēšanās. Piemēram, iestatot linger.ms=5, samazināsies pieprasījumu skaits, bet tajā pašā laikā palielinās kavēšanos par 5 ms. | | max.request.size | int | 1028576 | Vidējas intensitātes sāpes | Maksimālais pieprasītais baitu skaits. Tas ir arī efektīvs segums maksimālajam reģistrētajam izmēram. Piezīme: Serverim ir sava ziņojumu ierakstu lielumu ignorēšana, kas atšķiras no šī iestatījuma. Šis iestatījums ierobežo pieprasījumu skaitu, ko ražotāji var nosūtīt lielapjomā vienlaikus, lai novērstu lielu pieprasījumu skaitu. | | saņemšanas.bufera.baiti | int | 32768 | Vidējas intensitātes sāpes | TCP saņemšanas kešatmiņas lielums, kas tiek izmantots, lasot datus | | sūtīt.buferis.baiti | int | 131072 | Vidējas intensitātes sāpes | TCP sūtīšanas kešatmiņas lielums, kas tiek izmantots, nosūtot datus | | timeout.ms | int | 30000 | Vidējas intensitātes sāpes | Šī konfigurācijas opcija kontrolē maksimālo laiku, kad serveris gaida apstiprinājumu no sekotājiem. Ja apstiprināto pieprasījumu skaits šajā laikā netiek izpildīts, tiek atgriezta kļūda. Šis taimauta ierobežojums tiek mērīts servera pusē, un tam nav tīkla latentuma, ieskaitot pieprasījumus | | bloķēt.uz.buferis.pilns | Būla | true | zems | Kad mūsu atmiņas kešatmiņa beidzas, mums jāpārtrauc saņemt jaunus ziņojumu ierakstus vai mest kļūdas. Pēc noklusējuma tas ir iestatīts uz true, tomēr dažus bloķējumus var nebūt vērts gaidīt, tāpēc labāk uzreiz izmest kļūdu. Tas attiecas uz false: producents izmet izņēmuma kļūdu: BufferExhaustedException, ja ieraksts ir nosūtīts un kešatmiņa ir pilna | | metadata.fetch.timeout.ms | garš | 60000 | zems | Tas attiecas uz dažu elementu pirmo reizi, ko mēs esam ieguvuši. Elementi ietver: tēmu, resursdatoru, starpsienas. Šī konfigurācija attiecas uz laiku, kas nepieciešams, lai elements veiksmīgi pabeigtu saskaņā ar fetch, pretējā gadījumā klientam tiks nosūtīts izņēmums. | | metadata.max.age.ms | garš | 300000 | zems | Laiks mikrosekundēs ir intervāls, kurā mēs piespiežam atjaunināt metadatus. Pat ja mēs neredzam nekādas nodalījuma vadības izmaiņas. | | metric.reportieri | Saraksts | [] | zems | Metrikas mērīšanai izmantoto klašu saraksts. MetricReporter saskarnes ieviešana ļaus pievienot klases, kas mainās, kad tiek ģenerēti jauni rādītāji. JmxReporter vienmēr iekļaus veidu, kā reģistrēt JMX statistiku | | metrics.num.samples | int | 2 | zems | Metrikas uzturēšanai izmantoto paraugu skaits | | metrics.sample.window.ms | garš | 30000 | zems | Metrikas sistēma uztur konfigurējamu paraugu skaitu koriģējamā loga izmērā. Šī konfigurācija konfigurē, piemēram, loga izmēru. Mēs varam saglabāt divus paraugus 30 gadu laikā. Kad logs tiek izvilkts, mēs izdzēšam un pārrakstām vecāko logu | | recoonect.backoff.ms | garš | 10 | zems | Kad savienojums neizdodas, gaidīšanas laiks, kad mēs atkal izveidojam savienojumu. Tas ļauj izvairīties no atkārtotiem klientu savienojumiem | | retry.backoff.ms | garš | 100 | zems | Gaidīšanas laiks, pirms mēģināt atkārtoti mēģināt neveiksmīgu ražošanas pieprasījumu. Izvairieties no iestrēgšanas sūtīšanas-neveiksmes strupceļā.
|
|