Apache Kafka

Apache Kafka sadalīšana

Apache Kafka sadalīšana
Šajā nodarbībā mēs redzēsim, ko mēs domājam ar sadalīšanu Apache Kafka un kā tas ietekmē Kafka klastera veiktspēju. Sadalīšanas koncepcijai ir galvenā nozīme Kafka klasterī, jo tā izmanto sadalīšanu kā galveno mērogošanas un veiktspējas palielināšanas veidu.

Lūdzu, ņemiet vērā, ka šī nav ievadnodarbība. Lūdzu, izlasiet Kas ir Apache Kafka un kā tas darbojas, pirms turpināt šo nodarbību, lai iegūtu dziļāku ieskatu.

Tēmas Kafkā

Tēma Kafkā ir kaut kas tāds, kur tiek nosūtīta ziņa. Patērētāju lietojumprogrammas, kuras interesējas par šo tēmu, ienes ziņojumu šajā tēmā un ar šiem datiem var darīt jebko. Līdz noteiktam laikam jebkurš patērētāju lietojumprogrammu skaits var vilkt šo ziņojumu vairākas reizes.

Apsveriet tēmu, piemēram, LinuxHint Ubuntu emuāra lapu. Nodarbības tiek liktas līdz mūžībai, un jebkurš entuziastu lasītājs var nākt un lasīt šīs stundas tik reižu vai pāriet uz nākamo stundu, kā vēlas. Šos lasītājus var interesēt arī citas tēmas no LinuxHint.

Tēmas sadalīšana

Kafka ir izstrādāts, lai pārvaldītu smagas lietojumprogrammas un rindotu lielu skaitu ziņojumu, kas tiek glabāti tēmā. Lai nodrošinātu augstu kļūdu toleranci, katra tēma tiek sadalīta vairākos tēmu nodalījumos, un katru tēmas nodalījumu pārvalda atsevišķā mezglā. Ja viens no mezgliem iet uz leju, cits mezgls var darboties kā tēmas vadītājs un var servēt tēmas ieinteresētajiem patērētājiem. Lūk, kā vieni un tie paši dati tiek ierakstīti vairākās tēmu nodalījumos:

Tēmas starpsienas


Tagad iepriekšējais attēls parāda, kā vieni un tie paši dati tiek atkārtoti vairākos nodalījumos. Apskatīsim, kā dažādi nodalījumi var darboties kā līderis dažādos mezglos / nodalījumos:

Kafka brokera nodalīšana

Kad klients kaut ko raksta tēmai pozīcijā, kuras līderis ir starpnieks 0 starpniekā, šie dati pēc tam tiek atkārtoti starpniekiem / mezgliem, lai ziņojums būtu drošs:

Replikācija starp brokeru starpsienām

Vairāk starpsienu, lielāka caurlaidspēja

Kafka izmanto Paralēlisms nodrošināt ļoti lielu caurlaidi ražotāju un patērētāju lietojumprogrammām. Faktiski tādā pašā veidā tā arī saglabā savu izturību pret ļoti vainu izturīgu sistēmu. Sapratīsim, cik liela caurlaide tiek panākta ar paralēlismu.

Kad Producer lietojumprogramma raksta kādu ziņojumu nodalījumā Broker 0, Kafka paralēli atver vairākus pavedienus, lai ziņojumu varētu vienlaicīgi atkārtot visos atlasītajos brokeros. Patērētāja pusē patērētāja lietojumprogramma patērē ziņojumus no viena nodalījuma caur pavedienu. Jo vairāk partīciju ir, jo vairāk patērētāja pavedienu var atvērt, lai visi tie varētu darboties arī paralēli. Tas nozīmē, jo vairāk partiju skaits klasterī, jo vairāk var izmantot paralēlismu, radot ļoti lielu caurlaidspēju.

Vairākām sadaļām ir nepieciešami vairāk failu apstrādātāju

Lai jūs iepriekš izpētītu, kā mēs varam palielināt Kafka sistēmas veiktspēju, tikai palielinot nodalījumu skaitu. Bet mums jābūt uzmanīgiem, uz kuru robežu mēs virzāmies.

Katrs Kafka tēmas nodalījums tiek kartēts ar direktoriju servera starpnieka failu sistēmā, kur tas darbojas. Šajā žurnāla direktorijā būs divi faili: viens indeksam un otrs faktiskajiem datiem par baļķu segmentu. Pašlaik Kafkā katrs brokeris atver katra žurnāla segmenta indeksa un datu faila faila rokturi. Tas nozīmē, ka, ja vienā brokerī ir 10 000 nodalījumu, tā rezultātā paralēli darbosies 20 000 failu apstrādātāju. Lai gan tas attiecas tikai uz Brokera konfigurāciju. Ja sistēmai, kurā ir izvietots brokeris, ir augsta konfigurācija, diez vai tas būs jautājums.

Risks ar lielu starpsienu skaitu

Kā mēs redzējām iepriekšējos attēlos, Kafka izmanto klastera iekšējās replikācijas tehniku, lai kopētu līdera ziņojumu uz Replikas nodalījumiem, kas atrodas citos brokeros. Gan ražotāja, gan patērētāja lietojumprogrammas lasa un raksta nodalījumā, kas pašlaik ir šī nodalījuma vadītājs. Kad brokeris neizdodas, šī Brokera vadītājs vairs nebūs pieejams. Metadati par to, kurš ir vadītājs, tiek glabāti Zookeeper. Pamatojoties uz šiem metadatiem, Kafka automātiski piešķirs nodalījuma vadību citam nodalījumam.

Kad starpnieks tiek izslēgts ar tīru komandu, Kafka klastera kontroliera mezgls sērijveidā pārvietos izslēgtā brokera vadītājus i.e. pa vienam. ja uzskatām, ka viena līdera pārvietošana ilgst 5 milisekundes, līderu nepieejamība patērētājus netraucēs, jo nepieejamība ir ļoti īsu laika periodu. Bet, ja ņemam vērā, kad Brokeris tiek nogalināts netīrā veidā, un šajā Brokerī ir 5000 nodalījumu, un no tiem 2000 bija partiju vadītāji, jaunu vadītāju piešķiršana visiem šiem nodalījumiem prasīs 10 sekundes, kas ir ļoti augsts, ja runa ir par ļoti pieprasītas lietojumprogrammas.

Secinājums

Ja mēs uzskatām par augsta līmeņa domātāju, vairāk Kafka klastera nodalījumu rada lielāku sistēmas caurlaidspēju. Paturot prātā šo efektivitāti, jāņem vērā arī tā Kafka klastera konfigurācija, kas mums jāuztur, atmiņa, kas mums jāpiešķir šai klasterim, un kā mēs varam pārvaldīt pieejamību un latentumu, ja kaut kas noiet greizi.

Šeit lasiet vairāk ziņas, kuru pamatā ir Ubuntu, un daudz ko citu par Apache kafka.

Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...