{"id":71213,"date":"2020-02-24T16:09:17","date_gmt":"2020-02-24T13:09:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes"},"modified":"2020-03-03T16:14:29","modified_gmt":"2020-03-03T13:14:29","slug":"opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes","title":{"rendered":"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Sh\u00ebn. p\u00ebrk.<\/b>: N\u00eb k\u00ebt\u00eb artikull, kompania Banzai Cloud ndan nj\u00eb shembull t\u00eb p\u00ebrdorimit t\u00eb utiliteteve t\u00eb saj speciale p\u00ebr t\u00eb leht\u00ebsuar operimin e Kafka n\u00eb Kubernetes. Udh\u00ebzimet e dh\u00ebna ilustrojn\u00eb se si mund t\u00eb p\u00ebrcaktohet madh\u00ebsia optimale e infrastruktur\u00ebs dhe si t\u00eb konfigurohet Kafka p\u00ebr t\u00eb arrijtur kapacitetin e k\u00ebrkuar.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/8a598ec7db091c2944a6442f9bc124da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nApache Kafka \u00ebsht\u00eb nj\u00eb platform\u00eb e shp\u00ebrndar\u00eb p\u00ebr transmetimin e t\u00eb dh\u00ebnave, e cila mund\u00ebson krijimin e sistemeve t\u00eb besueshme, t\u00eb shkall\u00ebzueshme dhe me performanc\u00eb t\u00eb lart\u00eb n\u00eb koh\u00eb reale. Mund\u00ebsit\u00eb e saj frym\u00ebzuese mund t\u00eb zgjerohet me ndihm\u00ebn e Kubernetes. P\u00ebr k\u00ebt\u00eb q\u00ebllim, ne zhvilluam <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/banzaicloud\/kafka-operator\">Operatorin Open Source t\u00eb Kafka<\/a><\/noindex> dhe nj\u00eb mjet t\u00eb quajtur <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/docs\/supertubes\/overview\/\">Supertubes<\/a><\/noindex>. K\u00ebto lejojn\u00eb ekzekutimin e Kafka n\u00eb Kubernetes dhe p\u00ebrdorimin e funksioneve t\u00eb saj t\u00eb ndryshme, t\u00eb tilla si optimizimi i konfigurimit t\u00eb brokerit, shkall\u00ebzimi mbi baza metrikash me ribalancim, vet\u00ebdijesimi p\u00ebr kapacitetet e pajisjeve, \"shk\u00ebputja e but\u00eb\" <i>(graceful)<\/i> e azhurnimeve etj.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p>Provoni Supertubes n\u00eb klasterin tuaj:<\/p>\n<pre><code class=\"bash\">curl https:\/\/getsupertubes.sh | sh dhe supertubes install -a --no-democluster --kubeconfig<\/code><\/pre>\n<p>\nOse kontaktoni <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/docs\/supertubes\/cli\/reference\/\">dokumentacion<\/a><\/noindex>. Mund t\u00eb lexoni gjithashtu p\u00ebr disa mund\u00ebsi t\u00eb Kafka, me t\u00eb cilat punimi \u00ebsht\u00eb automatizuar p\u00ebrmes Supertubes dhe Kafka operatorit. Ne kemi shkruar tashm\u00eb p\u00ebr to n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-operator\/\">Oh jo! Edhe nj\u00eb operator tjet\u00ebr Kafka p\u00ebr Kubernetes<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-alert\/\">Monitoroni dhe operoni Kafka n\u00eb baz\u00eb t\u00eb metrikave t\u00eb Prometheus<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-rack-awareness\/\">Nd\u00ebrgjegj\u00ebsimi i raftit Kafka n\u00eb Kubernetes<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-on-istio-performance\/\">T\u00eb p\u00ebrdorim Apache Kafka mbi Istio \u2014 benchmark<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-topic-user-management\/\">Grupet e kontrolluara p\u00ebr akses dhe autentifikim nga p\u00ebrdorues t\u00eb operatorit Kafka<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-rolling-upgrade\/\">P\u00ebrdit\u00ebsimi i rrotulluesh\u00ebm t\u00eb Kafka dhe konfigurimi dinamik n\u00eb Kubernetes<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/kafka-envoy-protocol-filter\/\">Filtri i protokollit Envoy p\u00ebr Kafka, n\u00eb rrjet<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/blockquote>\n<p>\nDuke vendosur t\u00eb ngrisni nj\u00eb grup Kafka n\u00eb Kubernetes, padyshim q\u00eb do t\u00eb p\u00ebrballeni me problemin e p\u00ebrcaktimit t\u00eb madh\u00ebsis\u00eb optimale t\u00eb infrastruktur\u00ebs themelore dhe nevoj\u00ebn p\u00ebr t\u00eb nxjerr\u00eb p\u00ebrfundime t\u00eb detajizuara t\u00eb konfiguracionit t\u00eb Kafka p\u00ebr t\u00eb p\u00ebrmbushur k\u00ebrkesat p\u00ebr kapacitetin. P\u00ebrformanca maksimale e \u00e7do broker-i p\u00ebrcaktohet nga performanca e komponenteve t\u00eb infrastruktur\u00ebs n\u00eb baz\u00eb t\u00eb tij, si\u00e7 jan\u00eb memoria, procesori, shpejt\u00ebsia e disku, kapaciteti i rrjetit etj.<\/p>\n<p>Idealja, konfigurimi i brokerit duhet t\u00eb jet\u00eb i till\u00eb q\u00eb t\u00eb gjitha element\u00ebt e infrastruktur\u00ebs t\u00eb p\u00ebrdoren n\u00eb maksimumin e mund\u00ebsive t\u00eb tyre. Megjithat\u00eb, n\u00eb jet\u00ebn reale, nj\u00eb konfigurim i till\u00eb \u00ebsht\u00eb mjaft i komplikuar. M\u00eb shum\u00eb gjasa, p\u00ebrdoruesit do t\u00eb konfigurojn\u00eb brokerat n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb maksimizojn\u00eb p\u00ebrdorimin e nj\u00eb apo dy komponenteve (diskut, memorie ose procesor). N\u00eb p\u00ebrgjith\u00ebsi, brokeri tregon performanc\u00ebn maksimale kur konfigurimi i tij lejon q\u00eb komponenti m\u00eb i ngadalsh\u00ebm t\u00eb angazhohet 'n\u00eb m\u00ebnyr\u00eb t\u00eb plot\u00eb'. K\u00ebshtu, ne mund t\u00eb marrim nj\u00eb ide t\u00eb p\u00ebraf\u00ebrt mbi ngarkes\u00ebn q\u00eb nj\u00eb broker \u00ebsht\u00eb n\u00eb gjendje t\u00eb p\u00ebrballoj\u00eb.<\/p>\n<p>Teorikisht, ne gjithashtu mund t\u00eb vler\u00ebsojm\u00eb numrin e brokerave t\u00eb nevojsh\u00ebm p\u00ebr t\u00eb p\u00ebrballuar nj\u00eb ngarkes\u00eb t\u00eb caktuar. Megjithat\u00eb, n\u00eb praktik\u00eb, opsionet e konfigurimit n\u00eb nivele t\u00eb ndryshme jan\u00eb aq t\u00eb shumta saq\u00eb vler\u00ebsimi i performanc\u00ebs potenciale t\u00eb nj\u00eb konfigurimi \u00ebsht\u00eb shum\u00eb i v\u00ebshtir\u00eb (n\u00ebse jo i pamundur). Me fjal\u00eb t\u00eb tjera, \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb planifikosh nj\u00eb konfigurim duke u bazuar n\u00eb nj\u00eb performanc\u00eb t\u00eb caktuar.<\/p>\n<p>P\u00ebr p\u00ebrdoruesit e Supertubes, zakonisht p\u00ebrdorim qasjen e m\u00ebposhtme: fillojm\u00eb me nj\u00eb konfigurim t\u00eb caktuar (infrastruktur\u00eb + cil\u00ebsime), pastaj matim performanc\u00ebn e saj, korrektojm\u00eb cil\u00ebsimet e brokerit dhe e p\u00ebrs\u00ebrisim procesin p\u00ebrs\u00ebri. Kjo ndodh derisa potenciali i komponentit m\u00eb t\u00eb ngadalsh\u00ebm t\u00eb infrastruktur\u00ebs t\u00eb jet\u00eb plot\u00ebsisht i angazhuar.<\/p>\n<p>Me k\u00ebt\u00eb m\u00ebnyr\u00eb ne marrim nj\u00eb pamje m\u00eb t\u00eb qart\u00eb se sa broker\u00eb i nevojiten klasterit p\u00ebr t\u00eb p\u00ebrballuar nj\u00eb ngarkes\u00eb t\u00eb caktuar (numri i broker\u00ebve gjithashtu varet nga faktor\u00eb t\u00eb tjer\u00eb, si numri minimal i replikave t\u00eb mesazheve p\u00ebr t\u00eb siguruar q\u00ebndrueshm\u00ebri, numri i lider\u00ebve t\u00eb partition-it etj.). P\u00ebrve\u00e7 k\u00ebsaj, ne marrim nj\u00eb ide se p\u00ebr cilin komponent infrastrukture \u00ebsht\u00eb e d\u00ebshirueshme shkall\u00ebzimi vertikal.<\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb flitet p\u00ebr hapat q\u00eb ne nd\u00ebrmarrim p\u00ebr t\u00eb \"shk\u00eblqyer gjith\u00e7ka\" nga komponent\u00ebt m\u00eb t\u00eb ngadalsh\u00ebm n\u00eb konfigurimet fillestare dhe p\u00ebr t\u00eb matur kapacitetin kalues t\u00eb klasterit Kafka. Nj\u00eb konfigurim me q\u00ebndrueshm\u00ebri t\u00eb lart\u00eb k\u00ebrkon t\u00eb pakt\u00ebn tre broker\u00eb q\u00eb funksionojn\u00eb (<code>min.insync.replicas=3<\/code>), t\u00eb shp\u00ebrndara n\u00eb tre zona t\u00eb ndryshme disponueshm\u00ebrie. P\u00ebr konfigurimin, shkall\u00ebzimin dhe monitorimin e infrastruktur\u00ebs Kubernetes, ne p\u00ebrdorim platform\u00ebn ton\u00eb t\u00eb menaxhimit t\u00eb kontejner\u00ebve p\u00ebr mjete hibride \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/banzaicloud\/pipeline\">Pipeline<\/a><\/noindex>. Ajo mb\u00ebshtet on-premise (bare metal, VMware) dhe pes\u00eb lloje t\u00eb mjeteve (Alibaba, AWS, Azure, Google, Oracle), si dhe \u00e7do kombinim t\u00eb tyre.<\/p>\n<h2>Mendime mbi infrastruktur\u00ebn dhe konfigurimin e klasterit Kafka<\/h2>\n<p>\nP\u00ebr shembujt e dh\u00ebn\u00eb m\u00eb posht\u00eb, ne zgjodh\u00ebm AWS si ofruesin e sh\u00ebrbimeve t\u00eb mjeteve dhe EKS si shp\u00ebrndarjen e Kubernetes. Nj\u00eb konfigurim t\u00eb ngjash\u00ebm mund t\u00eb realizohet me <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/banzaicloud\/pke\">PKE<\/a><\/noindex> \u2014 shp\u00ebrndarja e Kubernetes nga Banzai Cloud, e certifikuar nga CNCF.<\/p>\n<h3>Disku<\/h3>\n<p>\nAmazon ofron lloje t\u00eb ndryshme <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ebs-volume-types.html\">t\u00eb volumeneve EBS<\/a><\/noindex>. N\u00eb thelb, <i>gp2<\/i> dhe <i>io1<\/i> jan\u00eb bazuar n\u00eb disqe SSD, megjithat\u00eb p\u00ebr t\u00eb siguruar nj\u00eb kapacitet t\u00eb lart\u00eb kalimi, <i>gp2<\/i> ai konsumon kredite I\/O <i>(kredite I\/O)<\/i>, prandaj ne preferuam nj\u00eb tip <i>io1<\/i>, i cili ofron nj\u00eb kalim t\u00eb q\u00ebndruesh\u00ebm t\u00eb lart\u00eb.<\/p>\n<h3>Llojet e instancave<\/h3>\n<p>\nPerformanca e Kafka varet shum\u00eb nga cache-i i faqeve t\u00eb sistemit operativ, prandaj na nevojiten instanca me mjaft memorie p\u00ebr broker\u00ebt (JVM) dhe cache-in e faqeve. Instanca <i>c5.2xlarge<\/i> \u2014 nj\u00eb fillim i mir\u00eb, pasi ka 16 GB memorie dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ebs-optimized.html\">\u00ebsht\u00eb i optimizuar p\u00ebr t\u00eb punuar me EBS<\/a><\/noindex>. Disavantazhi i tij \u00ebsht\u00eb se ai mund t\u00eb ofroj\u00eb performanc\u00eb maksimale p\u00ebr maksimumi 30 minuta \u00e7do 24 or\u00eb. N\u00ebse ngarkesa e pun\u00ebs k\u00ebrkon performanc\u00eb maksimale p\u00ebr nj\u00eb periudh\u00eb m\u00eb t\u00eb gjat\u00eb, \u00ebsht\u00eb e nevojshme t\u00eb shqyrtohen lloje t\u00eb tjera instancash. Ne e b\u00ebm\u00eb sht\u00ebpin\u00eb ton\u00eb, duke u ndalur n\u00eb <i>c5.4xlarge<\/i>. Ai ofron nj\u00eb kapacitet maksimal prej <b>593.75 MB\/s<\/b>. Kapaciteti maksimal i volumit EBS <i>io1<\/i> \u00ebsht\u00eb m\u00eb i lart\u00eb se ai i instanc\u00ebs <i>c5.4xlarge<\/i>, k\u00ebshtu q\u00eb element dhe m\u00eb i ngadalsh\u00ebm n\u00eb infrastruktur\u00eb, duket se \u00ebsht\u00eb kapaciteti I\/O i k\u00ebtij lloji instance (\u00e7ka gjithashtu duhet ta konfirmojn\u00eb rezultatet tona t\u00eb testeve t\u00eb ngarkes\u00ebs).<\/p>\n<h3>RRjeti<\/h3>\n<p>\nKapaciteti i rrjetit duhet t\u00eb jet\u00eb mjaft i madh n\u00eb krahasim me performanc\u00ebn e instanc\u00ebs VM dhe diskut, n\u00eb t\u00eb kund\u00ebrt do t\u00eb shnd\u00ebrrohet n\u00eb nj\u00eb pik\u00eb t\u00eb ngusht\u00eb. N\u00eb rastin ton\u00eb, nd\u00ebrfaqja rrjetit <i>c5.4xlarge<\/i> mb\u00ebshtet nj\u00eb shpejt\u00ebsi deri n\u00eb 10 GB\/s, q\u00eb \u00ebsht\u00eb duksh\u00ebm m\u00eb e lart\u00eb se kapaciteti I\/O i instanc\u00ebs VM.<\/p>\n<h3>Zhvillimi i broker\u00ebve<\/h3>\n<p>\nBrokers duhet t\u00eb shtrihen (planifikohen n\u00eb Kubernetes) n\u00eb node t\u00eb dedikuar, p\u00ebr t\u00eb shmangur konkurrenc\u00ebn me procese t\u00eb tjera p\u00ebr burimet e procesor\u00ebve, memories, rrjetit dhe disqeve.<\/p>\n<h3>Versioni i Java<\/h3>\n<p>\nZgjedhja logjike \u00ebsht\u00eb Java 11, pasi ajo \u00ebsht\u00eb e p\u00ebrputhshme me Docker, n\u00eb kuptimin q\u00eb JVM e p\u00ebrcakton sakt\u00ebsisht procesor\u00ebt dhe memorien e disponueshme p\u00ebr kontejnerin n\u00eb t\u00eb cilin funksionon brokeri. Duke e ditur se kufizimet e procesor\u00ebve jan\u00eb t\u00eb r\u00ebnd\u00ebsishme, JVM brenda saj dhe n\u00eb m\u00ebnyr\u00eb transparente p\u00ebrcakton numrin e telave t\u00eb GC dhe telave t\u00eb kompilatorit JIT. Ne p\u00ebrdor\u00ebm imazhin Kafka <code>banzaicloud\/kafka:2.13-2.4.0<\/code>, duke p\u00ebrfshir\u00eb versionin Kafka 2.4.0 (Scala 2.13) n\u00eb Java 11.<\/p>\n<blockquote><p>N\u00ebse d\u00ebshironi t\u00eb m\u00ebsoni m\u00eb shum\u00eb rreth Java\/JVM n\u00eb Kubernetes, ju lutemi shikoni publikimet tona t\u00eb m\u00ebposhtme:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/java-resource-limits\/\">Pse aplikacioni im Java \u00ebsht\u00eb OOMKilled<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/blog\/java10-container-sizing\/\">Si t\u00eb p\u00ebrcaktoni sakt\u00ebsisht madh\u00ebsin\u00eb e kontejner\u00ebve p\u00ebr aplikacionet Java 10<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/blockquote>\n<p><\/p>\n<h3>Cil\u00ebsimet e memories s\u00eb brokerit<\/h3>\n<p>\nEkzistojn\u00eb dy aspekte ky\u00e7e n\u00eb konfigurimin e memories s\u00eb brokerit: konfigurimet p\u00ebr JVM dhe p\u00ebr podin e Kubernetes. Kufiri i memories, i vendosur p\u00ebr podin, duhet t\u00eb jet\u00eb m\u00eb i lart\u00eb se madh\u00ebsia maksimale e heap, n\u00eb m\u00ebnyr\u00eb q\u00eb JVM t\u00eb ket\u00eb hap\u00ebsir\u00eb p\u00ebr hap\u00ebsir\u00ebn metame, e cila ndodhet n\u00eb memorien e saj dhe p\u00ebr cache-n e faqeve t\u00eb sistemit operativ, q\u00eb Kafka e p\u00ebrdor aktivisht. N\u00eb testet tona, ne kemi ekzekutuar broker\u00ebt Kafka me parametrat <code>-Xmx4G -Xms2G<\/code>, nd\u00ebrsa kufiri i memories p\u00ebr podin ishte <code>10 Gi<\/code>. Vini re se konfigurimet e memories p\u00ebr JVM mund t\u00eb merren automatikisht me an\u00eb t\u00eb <code>-XX:MaxRAMPercentage<\/code> dhe <code>-X:MinRAMPercentage<\/code>, n\u00eb p\u00ebrputhje me limitin e memories p\u00ebr podin.<\/p>\n<h3>Konfigurimet e procesorit t\u00eb brokerit<\/h3>\n<p>\nN\u00eb p\u00ebrgjith\u00ebsi, \u00ebsht\u00eb e mundur t\u00eb rritet performanca duke rritur paralelizm\u00ebn p\u00ebrmes rritjes s\u00eb numrit t\u00eb thesareve q\u00eb p\u00ebrdoren nga Kafka. Sa m\u00eb shum\u00eb procesor\u00eb t\u00eb jen\u00eb t\u00eb disponuesh\u00ebm p\u00ebr Kafka, aq m\u00eb mir\u00eb. N\u00eb testin ton\u00eb kemi filluar me nj\u00eb kufi prej 6 procesor\u00ebsh dhe gradualisht (n\u00eb iteracione) e rrit\u00ebm numrin e tyre n\u00eb 15. P\u00ebr m\u00eb tep\u00ebr, kemi vendosur <code>num.network.threads=12<\/code> n\u00eb cil\u00ebsimet e brokerit, p\u00ebr t\u00eb rritur numrin e rrjedhave q\u00eb marrin t\u00eb dh\u00ebna nga rrjeti dhe i d\u00ebrgojn\u00eb ato. Menj\u00ebher\u00eb duke e kuptuar se broker\u00ebt ndiq\u00ebs nuk mund t\u00eb marrin replika mjaftuesh\u00ebm shpejt, rrit\u00ebm <code>num.replica.fetchers<\/code> n\u00eb 4, p\u00ebr t\u00eb p\u00ebrshpejtuar shpejt\u00ebsin\u00eb me t\u00eb cil\u00ebn broker\u00ebt ndiq\u00ebs replikonin mesazhet nga lider\u00ebt.<\/p>\n<h3>Mjeti i gjenerimit t\u00eb ngarkes\u00ebs<\/h3>\n<p>\nDuhet t\u00eb sigurohemi q\u00eb potencali i gjeneratorit t\u00eb ngarkes\u00ebs t\u00eb mos skadoj\u00eb p\u00ebrpara se klasteri Kafka (i cili po testohet) t\u00eb arrij\u00eb ngarkes\u00ebn e tij maksimale. Me fjal\u00eb t\u00eb tjera, \u00ebsht\u00eb e nevojshme t\u00eb b\u00ebhet nj\u00eb vler\u00ebsim paraprak i mund\u00ebsive t\u00eb mjetit t\u00eb gjenerimit t\u00eb ngarkes\u00ebs, si dhe t\u00eb zgjidhen p\u00ebr t\u00eb modelet e instance-ve me num\u00ebr t\u00eb mjaftuesh\u00ebm procesor\u00ebsh dhe memories. N\u00eb k\u00ebt\u00eb rast, mjeti yn\u00eb do t\u00eb prodhoj\u00eb m\u00eb shum\u00eb ngarkes\u00eb sesa klasteri Kafka mund t\u00eb p\u00ebrballoj\u00eb. Pas shum\u00eb eksperimenteve, ne u ndal\u00ebm n\u00eb tre instance <i>c5.4xlarge<\/i>, n\u00eb secil\u00ebn prej t\u00eb cilave ishte aktivizuar nj\u00eb gjenerator.<\/p>\n<h2>Benchmarkimi<\/h2>\n<p>\nMatja e performanc\u00ebs \u00ebsht\u00eb nj\u00eb proces iterativ q\u00eb p\u00ebrfshin fazat e m\u00ebposhtme:<\/p>\n<ul>\n<li> konfigurimi i infrastruktur\u00ebs (klasteri EKS, klasteri Kafka, mjeti i gjenerimit t\u00eb ngarkes\u00ebs, si dhe Prometheus dhe Grafana);<\/li>\n<li> gjenerimi i ngarkes\u00ebs p\u00ebr nj\u00eb periudh\u00eb t\u00eb caktuar p\u00ebr t\u00eb filtruar deviacione t\u00eb rastit n\u00eb sh\u00ebnimet e performanc\u00ebs t\u00eb mbledhura;<\/li>\n<li> p\u00ebrshtatja e infrastruktur\u00ebs dhe konfigurimit t\u00eb brokerit n\u00eb baz\u00eb t\u00eb metrikeve t\u00eb performanc\u00ebs s\u00eb v\u00ebzhguara;<\/li>\n<li> p\u00ebrs\u00ebritja e procesit derisa t\u00eb arrihet niveli i k\u00ebrkuar i kapacitetit t\u00eb klasterit Kafka. Ky duhet t\u00eb jet\u00eb stabilisht i riprodhuesh\u00ebm dhe t\u00eb tregoj\u00eb variacione minimale t\u00eb kapacitetit.<\/li>\n<\/ul>\n<p>\nN\u00eb seksionin e ardhsh\u00ebm p\u00ebrshkruhen hapat q\u00eb jan\u00eb ndjekur gjat\u00eb procesit t\u00eb benchmark-ut t\u00eb klasterit p\u00ebr prova.<\/p>\n<h3>Mjetet<\/h3>\n<p>\nP\u00ebr implementimin e shpejt\u00eb t\u00eb konfigurimit themelor, gjenerimin e ngarkes\u00ebs dhe matjen e performanc\u00ebs jan\u00eb p\u00ebrdorur mjetet e m\u00ebposhtme:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/docs\/pipeline\/overview\/\">Banzai Cloud Pipeline<\/a><\/noindex> p\u00ebr organizimin e klasterit EKS nga Amazon me <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> (p\u00ebr mbledhjen e metrikeve t\u00eb Kafka dhe infrastruktur\u00ebs) dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/\">Grafana<\/a><\/noindex> (p\u00ebr vizualizimin e k\u00ebtyre metrikeve). Ne kemi p\u00ebrdorur <b>t\u00eb integruar.<\/b> n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/banzaicloud\/pipeline\">Pipeline<\/a><\/noindex> sh\u00ebrbimeve q\u00eb ofrojn\u00eb monitorim federativ, grumbullim t\u00eb centralizuar t\u00eb logjeve, skanimin e dob\u00ebsive, rikuperimin pas d\u00ebshtimeve, sigurin\u00eb e nivelit korporativ dhe shum\u00eb t\u00eb tjera.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jamiealquiza\/sangrenel\">Sangrenel<\/a><\/noindex> \u2014 nj\u00eb mjet p\u00ebr testimin e ngarkes\u00ebs s\u00eb klasterit Kafka.<\/li>\n<li> Grafana panels p\u00ebr vizualizimin e metrikeve t\u00eb Kafka dhe infrastruktur\u00ebs: <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/grafana\/dashboards\/10123\">Kubernetes Kafka<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/grafana\/dashboards\/1860\">Node Exporter<\/a><\/noindex>.<\/li>\n<li> Supertubes CLI p\u00ebr konfigurimin sa m\u00eb t\u00eb thjesht\u00eb t\u00eb klasterit Kafka n\u00eb Kubernetes. Zookeeper, Kafka operator, Envoy dhe shum\u00eb komponent\u00eb t\u00eb tjer\u00eb jan\u00eb t\u00eb instaluar dhe t\u00eb konfiguruar si\u00e7 duhet p\u00ebr t\u00eb drejtuar nj\u00eb klaster Kafka t\u00eb gatsh\u00ebm p\u00ebr prodhim n\u00eb Kubernetes.\n<ul>\n<li> P\u00ebr instalimin <i>supertubes CLI<\/i> p\u00ebrdorni udh\u00ebzimet e dh\u00ebna <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/docs\/supertubes\/cli\/install\/\">k\u00ebtu<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/23ecf423b1ea66813406943ae7eabf61.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Klaster EKS<\/h3>\n<p>\nP\u00ebrgatitni klasterin EKS me nodet e dedikuara <i>c5.4xlarge<\/i> n\u00eb zona t\u00eb ndryshme t\u00eb disponueshm\u00ebris\u00eb p\u00ebr podet me broker\u00ebt Kafka, si dhe nodet e dedikuara p\u00ebr gjeneratorin e ngarkes\u00ebs dhe infrastruktur\u00ebn e monitorimit.<\/p>\n<pre><code class=\"bash\">banzai cluster create -f https:\/\/raw.githubusercontent.com\/banzaicloud\/kafka-operator\/master\/docs\/benchmarks\/infrastructure\/cluster_eks_202001.json<\/code><\/pre>\n<p>\nKur klasteri EKS t\u00eb jet\u00eb n\u00eb pun\u00eb, aktivizoni <noindex><a rel=\"nofollow\" href=\"https:\/\/banzaicloud.com\/docs\/pipeline\/features\/integrated-services\/\">sh\u00ebrbimin e tij t\u00eb integruar t\u00eb monitorimit<\/a><\/noindex> \u2014 do t\u00eb shp\u00ebrndaj\u00eb Prometheus dhe Grafana n\u00eb klaster.<\/p>\n<h3>Pjes\u00ebt sistemike t\u00eb Kafka<\/h3>\n<p>\nInstaloni pjes\u00ebt sistemike t\u00eb Kafka (Zookeeper, kafka-operator) n\u00eb EKS duke p\u00ebrdorur supertubes CLI:<\/p>\n<pre><code class=\"bash\">supertubes install -a --no-democluster --kubeconfig<\/code><\/pre>\n<p><\/p>\n<h3>Klusteri Kafka<\/h3>\n<p>\nMe default, n\u00eb EKS p\u00ebrdoren volume EBS t\u00eb tipit <i>gp2<\/i>, prandaj \u00ebsht\u00eb e nevojshme t\u00eb krijohet nj\u00eb klas\u00eb e ve\u00e7ant\u00eb magazinimi t\u00eb bazuar n\u00eb volume <i>io1<\/i> p\u00ebr klusterin Kafka:<\/p>\n<pre><code class=\"plaintext\">kubectl create -f - &lt;&lt;EOF\napiVersion: storage.k8s.io\/v1\nkind: StorageClass\nmetadata:\n  name: fast-ssd\nprovisioner: kubernetes.io\/aws-ebs\nparameters:\n  type: io1\n  iopsPerGB: &quot;50&quot;\n  fsType: ext4\nvolumeBindingMode: WaitForFirstConsumer\nEOF<\/code><\/pre>\n<p>\nVendosni parametrin p\u00ebr broker\u00ebt <code>min.insync.replicas=3<\/code> dhe zhvilloni podet e broker\u00ebve n\u00eb nodet n\u00eb tri zona t\u00eb ndryshme t\u00eb disponueshm\u00ebris\u00eb:<\/p>\n<pre><code class=\"bash\">supertubes cluster create -n kafka --kubeconfig  -f https:\/\/raw.githubusercontent.com\/banzaicloud\/kafka-operator\/master\/docs\/benchmarks\/infrastructure\/kafka_202001_3brokers.yaml --wait --timeout 600<\/code><\/pre>\n<p><\/p>\n<h3>Temat<\/h3>\n<p>\nNe kemi ekzekutuar paralelisht tre instanca t\u00eb gjeneratorit t\u00eb ngarkes\u00ebs. Secili prej tyre shkruan n\u00eb tem\u00ebn e tij, q\u00eb do t\u00eb thot\u00eb se na nevojiten gjithsej tri tema:<\/p>\n<pre><code class=\"bash\">supertubes cluster topic create -n kafka --kubeconfig  -f -&lt;&lt;EOF\napiVersion: kafka.banzaicloud.io\/v1alpha1\nkind: KafkaTopic\nmetadata:\n  name: perftest1\nspec:\n  name: perftest1\n  partitions: 12\n  replicationFactor: 3\n  retention.ms: &#039;28800000&#039;\n  cleanup.policy: delete\nEOF\n\nsupertubes cluster topic create -n kafka --kubeconfig  -f -&lt;&lt;EOF\napiVersion: kafka.banzaicloud.io\/v1alpha1\nkind: KafkaTopic\nmetadata:\n    name: perftest2\nspec:\n  name: perftest2\n  partitions: 12\n  replicationFactor: 3\n  retention.ms: &#039;28800000&#039;\n  cleanup.policy: delete\nEOF\n\nsupertubes cluster topic create -n kafka --kubeconfig  -f -&lt;&lt;EOF\napiVersion: kafka.banzaicloud.io\/v1alpha1\nkind: KafkaTopic\nmetadata:\n  name: perftest3\nspec:\n  name: perftest3\n  partitions: 12\n  replicationFactor: 3\n  retention.ms: &#039;28800000&#039;\n  cleanup.policy: delete\nEOF<\/code><\/pre>\n<p>\nP\u00ebr \u00e7do tem\u00eb, faktori i replikimit \u00ebsht\u00eb 3 \u2014 vlera minimale e rekomanduar p\u00ebr sistemet production me disponueshm\u00ebri t\u00eb lart\u00eb.<\/p>\n<h3>Mjeti i gjenerimit t\u00eb ngarkes\u00ebs<\/h3>\n<p>\nNe kemi ekzekutuar tre instance t\u00eb gjeneratorit t\u00eb ngarkes\u00ebs (secila shkruante n\u00eb nj\u00eb tem\u00eb t\u00eb ve\u00e7ant\u00eb). P\u00ebr podet e gjeneratorit t\u00eb ngarkes\u00ebs, \u00ebsht\u00eb e nevojshme t\u00eb shkruhet node affinity, n\u00eb m\u00ebnyr\u00eb q\u00eb ato t\u00eb planifikohen vet\u00ebm n\u00eb nodet e dedikuara p\u00ebr to:<\/p>\n<pre><code class=\"plaintext\">apiVersion: extensions\/v1beta1\nkind: Deployment\nmetadata:\n  labels:\n    app: loadtest\n  name: perf-load1\n  namespace: kafka\nspec:\n  progressDeadlineSeconds: 600\n  replicas: 1\n  revisionHistoryLimit: 10\n  selector:\n    matchLabels:\n      app: loadtest\n  strategy:\n    rollingUpdate:\n      maxSurge: 25%\n      maxUnavailable: 25%\n    type: RollingUpdate\n  template:\n    metadata:\n      creationTimestamp: null\n      labels:\n        app: loadtest\n    spec:\n      affinity:\n        nodeAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            nodeSelectorTerms:\n            - matchExpressions:\n              - key: nodepool.banzaicloud.io\/name\n                operator: In\n                values:\n                - loadgen\n      containers:\n      - args:\n        - -brokers=kafka-0:29092,kafka-1:29092,kafka-2:29092,kafka-3:29092\n        - -topic=perftest1\n        - -required-acks=all\n        - -message-size=512\n        - -workers=20\n        image: banzaicloud\/perfload:0.1.0-blog\n        imagePullPolicy: Always\n        name: sangrenel\n        resources:\n          limits:\n            cpu: 2\n            memory: 1Gi\n          requests:\n            cpu: 2\n            memory: 1Gi\n        terminationMessagePath: \/dev\/termination-log\n        terminationMessagePolicy: File\n      dnsPolicy: ClusterFirst\n      restartPolicy: Always\n      schedulerName: default-scheduler\n      securityContext: {}\n      terminationGracePeriodSeconds: 30<\/code><\/pre>\n<p>\nDisa pika q\u00eb duhet t\u00eb keni parasysh:<\/p>\n<ul>\n<li> Generatori i ngarkes\u00ebs gjeneron mesazhe me gjat\u00ebsi 512 byte dhe i publikon ato n\u00eb Kafka n\u00eb grupe prej 500 mesazhesh.<\/li>\n<li> Dhe me argumentin <code>-required-acks=all<\/code> Publikimi konsiderohet i suksessh\u00ebm kur t\u00eb gjitha replikat e sinkronizuara t\u00eb mesazheve jan\u00eb marr\u00eb dhe konfirmuar nga brokerat Kafka. Kjo do t\u00eb thot\u00eb se n\u00eb benchmarkun mat\u00ebm jo vet\u00ebm shpejt\u00ebsin\u00eb e lider\u00ebve q\u00eb marrin mesazhe, por edhe t\u00eb pasuesve t\u00eb tyre q\u00eb riplikojn\u00eb mesazhet. Testi i k\u00ebtij testi nuk p\u00ebrfshin vler\u00ebsimin e shpejt\u00ebsis\u00eb s\u00eb leximit nga konsumator\u00ebt. <i>(konsumator\u00ebt)<\/i> e mesazheve t\u00eb sapopranuara, t\u00eb cilat ende q\u00ebndrojn\u00eb n\u00eb cache-n\u00eb e sistemit t\u00eb operimit, dhe krahasimi i saj me shpejt\u00ebsin\u00eb e leximit t\u00eb mesazheve q\u00eb ruhen n\u00eb disk.<\/li>\n<li> Gjeneratori i ngarkes\u00ebs ekzekuton paralelisht 20 pun\u00ebtor\u00eb (<code>-workers=20<\/code>). \u00c7do pun\u00ebtor p\u00ebrmban 5 prodhues, t\u00eb cil\u00ebt ndajn\u00eb lidhjen e pun\u00ebtorit me klasterin Kafka. Si rezultat, \u00e7do gjenerator ka 100 prodhues, dhe t\u00eb gjith\u00eb ata d\u00ebrgojn\u00eb mesazhe n\u00eb klasterin Kafka.<\/li>\n<\/ul>\n<p><\/p>\n<h3>V\u00ebzhgimi i gjendjes s\u00eb klust\u00ebrin<\/h3>\n<p>\nGjat\u00eb testimit t\u00eb ngarkes\u00ebs s\u00eb klasterit Kafka, ne gjithashtu ndoq\u00ebm sh\u00ebndetin e tij, p\u00ebr t'u siguruar q\u00eb nuk kishte rindezje t\u00eb pod\u00ebve, replika t\u00eb \u00e7'kordinuara dhe kapacitet maksimal me variacione minimale:<\/p>\n<ul>\n<li> Generatori i ngarkes jep statistik\u00ebn standarde p\u00ebr numrin e mesazheve t\u00eb publikuara dhe nivelin e gabimeve. P\u00ebrqindja e gabimeve duhet t\u00eb mbetet n\u00eb vler\u00ebn <code>0,00%<\/code>.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/cruise-control\">Kontrolli i Fluturimit<\/a><\/noindex>, e cila \u00ebsht\u00eb implementuar nga kafka-operator, ofron nj\u00eb panel monitorimi, ku ne gjithashtu mund t\u00eb ndjekim gjendjen e klasterit. P\u00ebr t\u00eb par\u00eb k\u00ebt\u00eb panel, kryeni:\n<pre><code class=\"bash\">supertubes cluster cruisecontrol show -n kafka --kubeconfig<\/code><\/pre>\n<\/li>\n<li> Niveli ISR <i>(numri i replikave \u00abin-sync\u00bb)<\/i> shrink dhe expansion \u00ebsht\u00eb 0.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Rezultatet e matjeve<\/h2>\n<p><\/p>\n<h3>3 broker\u00eb, madh\u00ebsia e mesazheve \u2014 512 byte<\/h3>\n<p>\nMe partitionet e shp\u00ebrndara n\u00eb m\u00ebnyr\u00eb t\u00eb barabart\u00eb n\u00eb tre broker\u00eb, ne arrijm\u00eb t\u00eb p\u00ebrfitojm\u00eb performanc\u00eb <i>~500 Mb\/s (af\u00ebrsisht 990 mij\u00eb mesazhe n\u00eb sekond\u00eb)<\/i>:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/df65ff6a1a26e28d5e5a7a5ab1a20d98.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/15c5883c0056c651f0a0bd14e9991967.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/9b708fa5ce809b0d059cba9f5edfbb2f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKonsumimi i memories nga makina virtuale JVM nuk e kaloi 2 Gb:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/3320e2eea891055cc0935da492d18ee9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/6e3976c310309aa8be45fa3fdf547750.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/94baa1b689ae854693fb7cc4ed6e105e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKapaciteti i diskut arriti kapacitetin maksimal I\/O t\u00eb nodit n\u00eb t\u00eb tre instancat ku ishin duke funksionuar broker\u00ebt:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/408139ad33cda1294755660df1c128a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/391d2df0ddfe82f94abdb200370ff775.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/e7e9fd021a2cdc71992ce672363a78ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNga t\u00eb dh\u00ebnat mbi p\u00ebrdorimin e memories nga nodet, rezulton se sistemet e buferimit dhe keqk\u00ebsimi z\u00ebn\u00eb ~10-15 Gb:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/781887507e01a4903b86871961ff9260.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/63f10177f01342039f04192ea93c8bca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/48b992cc73a968b3d3b1442f96562c4e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>3 broker\u00eb, madh\u00ebsia e mesazheve \u2014 100 byte<\/h3>\n<p>\nMe uljen e madh\u00ebsis\u00eb s\u00eb mesazheve, kapaciteti bie rreth 15-20%: ndikon koha e shpenzuar p\u00ebr p\u00ebrpunimin e \u00e7do mesazhi. P\u00ebr m\u00eb tep\u00ebr, ngarkesa n\u00eb procesor \u00ebsht\u00eb rritur pothuajse dyfish.<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/2f7dc5a94da371cfe17c9e0fc0ec1941.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/986160a3a4e099a0dbb8aeefaf6f1c2f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/c08244457bf4dbfadf52838d4ea2969e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke qen\u00eb se n\u00eb nyjat e broker\u00ebve ende ka b\u00ebrthama t\u00eb pap\u00ebrdorura, performanca mund t\u00eb p\u00ebrmir\u00ebsohet p\u00ebrmes ndryshimit t\u00eb konfigurimit t\u00eb Kafka-s. Kjo \u00ebsht\u00eb nj\u00eb detyr\u00eb e v\u00ebshtir\u00eb, prandaj p\u00ebr t\u00eb rritur kapacitetin \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb punoni me mesazhe m\u00eb t\u00eb m\u00ebdha.<\/p>\n<h3>4 broker\u00eb, madh\u00ebsia e mesazheve \u2014 512 byte<\/h3>\n<p>\n\u00cbsht\u00eb e leht\u00eb t\u00eb rritet performanca e klasterit Kafka, thjesht duke shtuar broker\u00eb t\u00eb rinj dhe duke ruajtur balancimin e partitioneve (kjo siguron shp\u00ebrndarje t\u00eb barabart\u00eb t\u00eb ngarkes\u00ebs midis broker\u00ebve). N\u00eb rastin ton\u00eb, pas shtimit t\u00eb nj\u00eb brokeri, kapaciteti i klasterit u rrit n\u00eb <i>~580 Mb\/s (~1.1 milion mesazhe n\u00eb sekond\u00eb)<\/i>. Rritja rezultoi m\u00eb e vog\u00ebl se sa pritej: kryesisht kjo shpjegohet nga disbalanci i partitioneve (jo t\u00eb gjith\u00eb broker\u00ebt funksionojn\u00eb n\u00eb maksimumin e mund\u00ebsive t\u00eb tyre).<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/8c8d2e70739add3c3f88fe42acf98c46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/a6e4812270c04487de0ad39b996a13f8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/6162c04cfb87b9d9cd0f3147a4ae1647.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/dae5de3b14be212c679f3627a3b77d7b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKonsumimi i memories nga makina JVM mbeti n\u00ebn 2 Gb:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/0bca07a817d7da3104b08de10979f049.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/7e1e64f80ec140f13e171cfe3be930ce.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/5e9700b1e54e45f9cd5fa018ec07dba1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/4ba0c4b59bfe72bcb0d2f22056c47d79.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFunksionimi i broker\u00ebve me ruajt\u00ebs pati ndikim nga disbalanci i partitioneve:<\/p>\n<p><img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/2b8ed3c21adf70c751d1daa6d4c41895.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/77b980869b99903d9de5cd7d43d79291.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/f2f9569a3a1ef0ce35e89b2e52e4a8b2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"P\u00ebrcaktojm\u00eb madh\u00ebsin\u00eb e p\u00ebrshtatshme p\u00ebr klastern Kafka n\u00eb Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/191d6d97b32b2128c5cfd3914171de15.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>P\u00ebrfundimet<\/h2>\n<p>\nQasja iteruese e paraqitur m\u00eb sip\u00ebr mund t\u00eb shtrihet p\u00ebr t\u00eb p\u00ebrfshir\u00eb skenar\u00eb m\u00eb komplekse, p\u00ebrfshir\u00eb qindra konsumator\u00eb, reparticionim, p\u00ebrdit\u00ebsime t\u00eb hapura, rindezje t\u00eb pod\u00ebve, etj. T\u00eb gjitha k\u00ebto na lejojn\u00eb t\u00eb vler\u00ebsojm\u00eb kufijt\u00eb e mund\u00ebsive t\u00eb klasterit Kafka n\u00eb kushte t\u00eb ndryshme, t\u00eb identifikojm\u00eb piketat e ngushta n\u00eb funksionimin e tij dhe t\u00eb gjejm\u00eb m\u00ebnyra p\u00ebr t'i p\u00ebrballuar ato.<\/p>\n<p>Ne zhvilluam Supertubes p\u00ebr shp\u00ebrndarjen e shpejt\u00eb dhe t\u00eb leht\u00eb t\u00eb klasterit, konfigurimin e tij, shtimin\/zhbllokimin e broker\u00ebve dhe temave, reagimin ndaj njoftimeve dhe sigurimin e funksionimit t\u00eb sakt\u00eb t\u00eb Kafka n\u00eb Kubernetes n\u00eb p\u00ebrgjith\u00ebsi. Q\u00ebllimi yn\u00eb \u00ebsht\u00eb q\u00eb t\u00eb ndihmojm\u00eb n\u00eb fokusimin n\u00eb detyr\u00ebn kryesore (\"t\u00eb gjenerojm\u00eb\" dhe \"t\u00eb konsumojm\u00eb\" mesazhe Kafka), nd\u00ebrsa t\u00eb gjith\u00eb pun\u00ebn e v\u00ebshtir\u00eb t'ia l\u00ebm\u00eb Supertubes dhe kafka operator.<\/p>\n<p>N\u00ebse jeni t\u00eb interesuar p\u00ebr teknologjit\u00eb dhe projektet Open Source t\u00eb Banzai Cloud, ndiqni kompanin\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/banzaicloud\">GitHub<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linkedin.com\/company\/banzaicloud\">LinkedIn<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BanzaiCloud\">Twitter<\/a><\/noindex>.<\/p>\n<h2>P.S. nga p\u00ebrkthyesi<\/h2>\n<p>\nLexoni gjithashtu n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/480722\/\">Nj\u00eb histori me operatorin Redis n\u00eb K8s dhe nj\u00eb p\u00ebrmbledhje t\u00eb vegloseve p\u00ebr analizimin e t\u00eb dh\u00ebnave t\u00eb k\u00ebsaj DB<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/450662\/\">Migrimi i pap\u00ebrmbajtsh\u00ebm i RabbitMQ n\u00eb Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/329224\/\">zetcd nga CoreOS: Z\u00ebvend\u00ebsimi i ZooKeeper me\u2026 ruajtjen etcd<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/488920\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Banzai Cloud \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0451 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 Kafka \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Kubernetes. \u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0430\u043c\u0443 Kafka \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. Apache Kafka \u2014 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":71214,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-71213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Banzai Cloud \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0451 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 Kafka \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Kubernetes. \u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0430\u043c\u0443 Kafka \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. Apache Kafka \u2014 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kafka \u0432 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Banzai Cloud \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0451 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 Kafka \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Kubernetes. \u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0430\u043c\u0443 Kafka \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. Apache Kafka \u2014 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-24T13:09:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47P\u00ebrcaktimi i madh\u00ebsis\u00eb s\u00eb p\u00ebrshtatshme p\u00ebr klasterin Kafka n\u00eb Kubernetes | ProHoster","description":"Sh\u00ebnim: N\u00eb k\u00ebt\u00eb artikull, kompania Banzai Cloud ndan nj\u00eb shembuj t\u00eb p\u00ebrdorimit t\u00eb mjeteve t\u00eb saj speciale p\u00ebr t\u00eb leht\u00ebsuar operimin e Kafka brenda Kubernetes. Udh\u00ebzimet e paraqitura ilustrojn\u00eb se si mund t\u00eb p\u00ebrcaktohet madh\u00ebsia optimale e infrastruktur\u00ebs dhe si t\u00eb konfigurohet Kafka p\u00ebr t\u00eb arritur kapacitetin e nevojsh\u00ebm. Apache Kafka \u00ebsht\u00eb nj\u00eb platform\u00eb e shp\u00ebrndar\u00eb p\u00ebr transmetimin e t\u00eb dh\u00ebnave p\u00ebr krijimin e sistemeve t\u00eb besueshme, t\u00eb shkall\u00ebzueshme dhe me performanc\u00eb t\u00eb lart\u00eb p\u00ebr transmetime n\u00eb koh\u00eb reale.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kafka \u0432 Kubernetes | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Banzai Cloud \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0451 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 Kafka \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Kubernetes. \u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0430\u043c\u0443 Kafka \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. Apache Kafka \u2014 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/opredelyaem-podhodyashhij-razmer-dlya-klastera-kafka-v-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-24T13:09:17+00:00","article:modified_time":"2020-03-03T13:14:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"71213","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:06:22","updated":"2022-10-04 20:58:00"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/71213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=71213"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/71213\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/71214"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=71213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=71213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=71213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}