{"id":82734,"date":"2020-05-24T13:42:22","date_gmt":"2020-05-24T11:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch"},"modified":"2020-05-24T13:42:22","modified_gmt":"2020-05-24T11:42:22","slug":"optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","title":{"rendered":"Optimizimi i ngarkes\u00ebs n\u00eb nj\u00eb projekt Highload me ndihm\u00ebn e ElasticSearch","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr! Emri im \u00ebsht\u00eb Maksim Vasilev, punoj si analist dhe menaxher projektesh n\u00eb FINCH. Sot do t\u00eb flas p\u00ebr how we were able to process 15 million requests in just 6 minutes and optimize daily loads on the website of one of our clients. Fatkeq\u00ebsisht, do t\u00eb duhet t\u00eb kalojm\u00eb pa emra, sepse kemi nj\u00eb NDA, shpresojm\u00eb q\u00eb p\u00ebrmbajtja e artikullit t\u00eb mos ndikohet nga kjo. Le t\u00eb fillojm\u00eb.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Si \u00ebsht\u00eb organizuar projekti<\/h2>\n<p>\nN\u00eb backendin ton\u00eb ne krijojm\u00eb sh\u00ebrbime q\u00eb sigurojn\u00eb funksionalitetin e faqeve t\u00eb internetit dhe aplikacionit mobil t\u00eb klientit ton\u00eb. Struktur\u00ebn e p\u00ebrgjithshme mund ta shihni n\u00eb diagram:<\/p>\n<p><img decoding=\"async\" alt=\"Optimizimi i ngarkes\u00ebs n\u00eb nj\u00eb projekt Highload me ndihm\u00ebn e ElasticSearch\" src=\"\/wp-content\/uploads\/2020\/05\/7bda10a9965163c2b175b501f50bc342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGjat\u00eb pun\u00ebs, ne p\u00ebrpunojm\u00eb nj\u00eb sasi t\u00eb madhe transaksionesh: blerjeve, pagesave, operacioneve me bilancet e p\u00ebrdoruesve, p\u00ebr t\u00eb cilat ruajm\u00eb shum\u00eb skeda, si dhe importojm\u00eb dhe eksportojm\u00eb k\u00ebto t\u00eb dh\u00ebna n\u00eb sisteme t\u00eb jashtme. <\/p>\n<p>Gjithashtu ndodhin procese t\u00eb kund\u00ebrta, kur ne marrim t\u00eb dh\u00ebna nga klienti dhe i transferojm\u00eb ato tek p\u00ebrdoruesit. P\u00ebrve\u00e7 k\u00ebsaj, ekzistojn\u00eb gjithashtu procese q\u00eb lidhen me pagesat dhe programet e bonusit.<\/p>\n<h2>Nj\u00eb histori e shkurt\u00ebr<\/h2>\n<p>\nFillimi me nj\u00eb sistem t\u00eb vet\u00ebm ruajtjeje t\u00eb dh\u00ebnash ishte PostgreSQL. P\u00ebrfitimet e tij t\u00eb zakonshme p\u00ebr DBMS: ekzistenca e transaksioneve, nj\u00eb gjuh\u00eb e zhvilluar p\u00ebr t\u00eb zgjedhur t\u00eb dh\u00ebnat, nj\u00eb gam\u00eb e gjer\u00eb mjetesh p\u00ebr integrim; s\u00eb bashku me nj\u00eb performanc\u00eb t\u00eb mir\u00eb, ata p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb p\u00ebrmbush\u00ebn nevojat tona. <\/p>\n<p>Ne ruajt\u00ebm n\u00eb Postgres t\u00eb gjitha t\u00eb dh\u00ebnat: nga transaksionet te lajmet. Por numri i p\u00ebrdoruesve u rrit, si\u00e7 u rrit edhe numri i k\u00ebrkesave.<\/p>\n<p><i>P\u00ebr t\u00eb kuptuar, numri vjetor i seancave n\u00eb vitin 2017 vet\u00ebm n\u00eb sitin desktop \u2014 131 milion. N\u00eb vitin 2018 \u2014 125 milion. N\u00eb vitin 2019 p\u00ebrs\u00ebri 130 milion. Shtoni atje edhe 100-200 milion nga versioni mobil i sitit dhe aplikacioni mobil dhe do t\u00eb merrni nj\u00eb num\u00ebr kolosal k\u00ebrkesash. <\/i><\/p>\n<p>Me rritjen e projektit, Postgres nuk mund t\u00eb p\u00ebrballonte ngarkes\u00ebn, ne nuk po arrinim \u2014 pati nj\u00eb num\u00ebr t\u00eb madh k\u00ebrkesash t\u00eb ndryshme p\u00ebr t\u00eb cilat nuk arrit\u00ebm t\u00eb krijonim nj\u00eb num\u00ebr t\u00eb mjaftuesh\u00ebm indekse. <\/p>\n<p>E kuptuam se kishte nj\u00eb nevoj\u00eb p\u00ebr depo t\u00eb tjera t\u00eb dh\u00ebnash q\u00eb do t\u00eb p\u00ebrmbushnin nevojat tona dhe do t\u00eb leht\u00ebsonin ngarkes\u00ebn nga PostgreSQL. Si mund\u00ebsi shqyrtuam Elasticsearch dhe MongoDB. E fundit humbte n\u00eb disa pika:<\/p>\n<ol>\n<li>Shpejt\u00ebsi e ngadalt\u00eb indeksoni me rritjen e volumit t\u00eb t\u00eb dh\u00ebnave n\u00eb indekset. Me Elastic, shpejt\u00ebsia nuk varet nga volumi i t\u00eb dh\u00ebnave.<\/li>\n<li>Nuk ka k\u00ebrkim me tekst t\u00eb plot\u00eb<\/li>\n<\/ol>\n<p>\nK\u00ebshtu q\u00eb ne zgjodh\u00ebm Elastic p\u00ebr veten ton\u00eb dhe u p\u00ebrgatit\u00ebm p\u00ebr kalim. <\/p>\n<h2>Kalimi n\u00eb Elastic<\/h2>\n<p>\n1. Ne filluam kalimin nga sh\u00ebrbimi i k\u00ebrkimit t\u00eb pikave t\u00eb shitjes. Klienti yn\u00eb ka gjithsej rreth 70,000 pika shitjeje dhe k\u00ebrkohen disa lloje k\u00ebrkimesh n\u00eb sit dhe n\u00eb aplikacion:<\/p>\n<ul>\n<li>K\u00ebrkimi tekstual sipas emrit t\u00eb vendit<\/li>\n<li>K\u00ebrkimi gjeografik brenda nj\u00eb rrethi t\u00eb caktuar nga nj\u00eb pik\u00eb. P\u00ebr shembull, n\u00ebse p\u00ebrdoruesi d\u00ebshiron t\u00eb shoh\u00eb se cilat pika shitjeje jan\u00eb m\u00eb af\u00ebr sht\u00ebpis\u00eb s\u00eb tij.<\/li>\n<li>K\u00ebrkimi n\u00eb nj\u00eb katror t\u00eb caktuar \u2013 p\u00ebrdoruesi t\u00ebrhiqet nj\u00eb katror mbi hart\u00eb dhe ai shfaqet t\u00eb gjitha pikat n\u00eb k\u00ebt\u00eb rreth. <\/li>\n<li>K\u00ebrkimi sipas filtrave shtes\u00eb. Pikat e shitjes ndryshojn\u00eb nga nj\u00ebra-tjetra sipas asortimentit. <\/li>\n<\/ul>\n<p>\nKur flasim p\u00ebr organizimin, n\u00eb Postgres kemi burimin e t\u00eb dh\u00ebnave si p\u00ebr hart\u00ebn, ashtu edhe p\u00ebr lajmet, nd\u00ebrsa n\u00eb Elastic b\u00ebhen Snapshot\u2019\u00eb nga t\u00eb dh\u00ebnat origjinale. \u00c7\u00ebshtja \u00ebsht\u00eb se fillimisht Postgres nuk p\u00ebrballonte me k\u00ebrkimin sipas t\u00eb gjith\u00eb kritereve. Jo vet\u00ebm q\u00eb kishte shum\u00eb indekse, ato mund t\u00eb p\u00ebrputheshin gjithashtu, prandaj planifikuesi i Postgres humbiste dhe nuk kuptonte se cili indeks duhet t\u00eb p\u00ebrdorte. <\/p>\n<p>2. Tjetra n\u00eb rend ishte seksioni i lajmeve. N\u00eb faqe, \u00e7do dit\u00eb publikohen artikuj, p\u00ebr t\u00eb siguruar q\u00eb p\u00ebrdoruesi t\u00eb mos humbas\u00eb n\u00eb rrjedh\u00ebn e informacionit, t\u00eb dh\u00ebnat duhet t\u00eb renditen para se t\u00eb jepen. P\u00ebr k\u00ebt\u00eb \u00ebsht\u00eb e nevojshme k\u00ebrkimi: n\u00eb faqe mund t\u00eb k\u00ebrkoni sipas p\u00ebrputhjes tekstuale, dhe p\u00ebr m\u00eb tep\u00ebr t\u00eb lidhni filtre shtes\u00eb, pasi ato gjithashtu jan\u00eb b\u00ebr\u00eb p\u00ebrmes Elastic. <\/p>\n<p>3. M\u00eb pas ne transferuam p\u00ebrpunimin e transaksioneve. P\u00ebrdoruesit mund t\u00eb blejn\u00eb nj\u00eb produkt t\u00eb caktuar n\u00eb faqe dhe t\u00eb marr\u00eb pjes\u00eb n\u00eb nj\u00eb t\u00ebrheqje shp\u00ebrblimesh. Pas k\u00ebtyre blerjeve, ne p\u00ebrpunojm\u00eb nj\u00eb sasi t\u00eb madhe t\u00eb dh\u00ebnash, ve\u00e7an\u00ebrisht gjat\u00eb fundjavave dhe festave. P\u00ebr krahasim, n\u00eb dit\u00ebt e zakonshme numri i blerjeve \u00ebsht\u00eb diku rreth 1.5-2 milion, nd\u00ebrsa gjat\u00eb festave numri mund t\u00eb arrij\u00eb deri n\u00eb 53 milion.<\/p>\n<p>N\u00eb k\u00ebt\u00eb rast, t\u00eb dh\u00ebnat duhet t\u00eb p\u00ebrpunohen n\u00eb nj\u00eb koh\u00eb minimale - p\u00ebrdoruesit nuk e duan t\u00eb presin disa dit\u00eb p\u00ebr rezultate. Me Postgres, nuk arrin dot nj\u00eb afat t\u00eb till\u00eb - shpesh kemi p\u00ebrjetuar bllokime, dhe p\u00ebrsa koh\u00eb p\u00ebrpunonim t\u00eb gjitha k\u00ebrkesat, p\u00ebrdoruesit nuk mund t\u00eb kontrollonin n\u00ebse kishin marr\u00eb \u00e7mime apo jo. Kjo nuk \u00ebsht\u00eb shum\u00eb e k\u00ebndshme p\u00ebr biznesin, prandaj ne e kemi transferuar p\u00ebrpunimin n\u00eb Elasticsearch.<\/p>\n<h2>Periudha<\/h2>\n<p>\nTani, p\u00ebrdit\u00ebsimet jan\u00eb t\u00eb konfiguruara me ngjarje, sipas kushteve t\u00eb m\u00ebposhtme:<\/p>\n<ol>\n<li>Pikat e Shk\u00ebmbimit. Sa her\u00eb q\u00eb marrim t\u00eb dh\u00ebna nga nj\u00eb burim t\u00eb jasht\u00ebm, ne menj\u00ebher\u00eb fillojm\u00eb p\u00ebrdit\u00ebsimin. <\/li>\n<li>Lajmet. Sa her\u00eb q\u00eb n\u00eb sit redaktohet nj\u00eb lajm, ai automatikisht d\u00ebrgohet n\u00eb Elastic.<\/li>\n<\/ol>\n<p>\nK\u00ebtu vlen t\u00eb p\u00ebrmendim p\u00ebrs\u00ebri p\u00ebrfitimet e Elastic. N\u00eb Postgres, gjat\u00eb d\u00ebrgimit t\u00eb k\u00ebrkes\u00ebs, duhet t\u00eb pres\u00ebsh nd\u00ebrsa ai p\u00ebrpunon t\u00eb gjitha regjistrimet. N\u00eb Elastic, mund t\u00eb d\u00ebrgosh 10,000 regjistrime dhe menj\u00ebher\u00eb t\u00eb fillosh pun\u00ebn, pa pritur q\u00eb regjistrimet t\u00eb shp\u00ebrndahen n\u00eb t\u00eb gjitha Shard-\u00ebt. Sigurisht, ndonj\u00eb Shard ose Replica mund t\u00eb mos shohin t\u00eb dh\u00ebnat menj\u00ebher\u00eb, por shum\u00eb shpejt gjith\u00e7ka do t\u00eb jet\u00eb e disponueshme.<\/p>\n<h2>Metodat e integrimit<\/h2>\n<p>\nKa 2 metoda integrimi me Elastic:<\/p>\n<ol>\n<li>P\u00ebrmes klientit natyror p\u00ebr TCP. Drejtori natyror gradualisht po zhduket: nuk po mb\u00ebshtetet m\u00eb, ka nj\u00eb sintaks\u00eb shum\u00eb t\u00eb v\u00ebshtir\u00eb. Prandaj ne praktikisht nuk e p\u00ebrdorim dhe p\u00ebrpiqemi t\u00eb heqim dor\u00eb nga ai.<\/li>\n<li>P\u00ebrmes nd\u00ebrfaqes HTTP, ku mund t\u00eb p\u00ebrdorim si k\u00ebrkesa JSON ashtu edhe sintaks\u00ebn Lucene. E fundit \u00ebsht\u00eb nj\u00eb motor tekstual q\u00eb p\u00ebrdor Elastic. N\u00eb k\u00ebt\u00eb variant, ne kemi mund\u00ebsin\u00eb e Batch p\u00ebrmes k\u00ebrkesave JSON p\u00ebr HTTP. Ky \u00ebsht\u00eb variant q\u00eb p\u00ebrpiqemi ta p\u00ebrdorim.<\/li>\n<\/ol>\n<p>\nFal\u00eb nd\u00ebrfaqes HTTP ne mund t\u00eb p\u00ebrdorim biblioteka q\u00eb ofrojn\u00eb nj\u00eb implementim asinkron t\u00eb HTTP klientit. Ne mund t\u00eb shfryt\u00ebzojm\u00eb avantazhin e Batch dhe API-s\u00eb asinkrone, q\u00eb n\u00eb fund ofron performanc\u00eb t\u00eb lart\u00eb, e cila na ndihmoi shum\u00eb n\u00eb dit\u00ebt e aksioneve t\u00eb m\u00ebdha (p\u00ebr k\u00ebt\u00eb m\u00eb posht\u00eb).<\/p>\n<p>Pak numra p\u00ebr krahasim: <\/p>\n<ul>\n<li>Ruajtja e p\u00ebrdoruesve q\u00eb mor\u00ebn \u00e7mime n\u00eb Postgres n\u00eb 20 thread pa grumbullime: 460713 regjistrime p\u00ebr 42 sekonda.<\/li>\n<li>Elastic + klient reaktiv n\u00eb 10 thread + batch n\u00eb 1000 elemente: 596749 regjistrime p\u00ebr 11 sekonda.<\/li>\n<li>Elastic + klient reaktiv n\u00eb 10 thread + batch n\u00eb 1000 elemente: <b>23801684 regjistrime p\u00ebr 4 minuta.<\/b><\/li>\n<\/ul>\n<p>\nTani kemi shkruar nj\u00eb menaxher k\u00ebrkesash HTTP, i cili ndalon JSON, si Batch\/nuk Batch dhe d\u00ebrgon p\u00ebrmes \u00e7do klienti HTTP pavar\u00ebsisht nga biblioteka. Po ashtu, mund t\u00eb zgjidhet d\u00ebrgimi sinhron ose asinkron i k\u00ebrkesave.<\/p>\n<p>N\u00eb disa integrime ne ende p\u00ebrdorim klientin zyrtar t\u00eb transportit, por kjo \u00ebsht\u00eb nj\u00eb \u00e7\u00ebshtje e ristrukturimit t\u00eb af\u00ebrt. Megjithat\u00eb, p\u00ebr p\u00ebrpunimin p\u00ebrdoret klienti yn\u00eb, i nd\u00ebrtuar mbi baz\u00ebn e Spring WebClient.<\/p>\n<p><img decoding=\"async\" alt=\"Optimizimi i ngarkes\u00ebs n\u00eb nj\u00eb projekt Highload me ndihm\u00ebn e ElasticSearch\" src=\"\/wp-content\/uploads\/2020\/05\/112bf3261c93ce585d8559b420e79f64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Promocion i madh<\/h2>\n<p>\nNj\u00eb her\u00eb n\u00eb vit, n\u00eb projekt zhvillohet nj\u00eb promovim i madh p\u00ebr p\u00ebrdoruesit \u2014 ky \u00ebsht\u00eb ai Highload, sepse n\u00eb k\u00ebt\u00eb koh\u00eb ne punojm\u00eb me miliona p\u00ebrdorues nj\u00ebkoh\u00ebsisht.<\/p>\n<p>Zakonisht, peaks e ngarkesave ndodhin gjat\u00eb festave, por ky promovim \u00ebsht\u00eb nj\u00eb nivel krejt tjet\u00ebr. Dy vite m\u00eb par\u00eb, n\u00eb dit\u00ebn e promovimit shit\u00ebm 27 580 890 nj\u00ebsi t\u00eb mallrave. T\u00eb dh\u00ebnat u p\u00ebrpunuan p\u00ebr m\u00eb shum\u00eb se nj\u00eb gjysm\u00eb ore, duke shkaktuar shqet\u00ebsim te p\u00ebrdoruesit. P\u00ebrdoruesit mor\u00ebn \u00e7mime p\u00ebr pjes\u00ebmarrje, por u b\u00eb e qart\u00eb se procesi duhet t\u00eb p\u00ebrshpejtohet. <\/p>\n<p>N\u00eb fillim t\u00eb vitit 2019, ne vendos\u00ebm q\u00eb na duhej ElasticSearch. P\u00ebr nj\u00eb vit organizuam p\u00ebrpunimin e t\u00eb dh\u00ebnave t\u00eb marra n\u00eb Elastic dhe shp\u00ebrndarjen e tyre n\u00eb API-n\u00eb e aplikacionit mobil dhe n\u00eb sit. N\u00eb fund, gjat\u00eb vitit t\u00eb ardhsh\u00ebm gjat\u00eb nj\u00eb fushate ne p\u00ebrpunuam <b>15 131 783 regjistrime brenda 6 minutash. <\/b><\/p>\n<p>Duke qen\u00eb se kemi shum\u00eb t\u00eb interesuar p\u00ebr t\u00eb bler\u00eb produkte dhe p\u00ebr t\u00eb marr\u00eb pjes\u00eb n\u00eb shp\u00ebrblime gjat\u00eb fushatave, kjo \u00ebsht\u00eb nj\u00eb mas\u00eb p\u00ebrkoh\u00ebsore. Tani ne d\u00ebrgojm\u00eb informacionin e sakt\u00eb n\u00eb Elastic, por n\u00eb t\u00eb ardhmen planifikojm\u00eb t\u00eb transferojm\u00eb informacionin arkivor nga muajt e kaluar n\u00eb Postgres, si nj\u00eb depo t\u00eb p\u00ebrhershme. P\u00ebr t\u00eb mos mbushur indeksin Elastic, i cili gjithashtu ka kufizimet e tij.<\/p>\n<h2>P\u00ebrfundimi\/konkluzionet<\/h2>\n<p>\nDerim\u00eb tani, ne kemi transferuar n\u00eb Elastic t\u00eb gjitha sh\u00ebrbimet q\u00eb d\u00ebshironim dhe p\u00ebr k\u00ebt\u00eb arsye kemi b\u00ebr\u00eb nj\u00eb pauz\u00eb. Tani ne po nd\u00ebrtojm\u00eb nj\u00eb indeks n\u00eb Elastic mbi depozitimin kryesor t\u00eb p\u00ebrhersh\u00ebm n\u00eb Postgres, i cili merr ngarkes\u00ebn e p\u00ebrdoruesve.<\/p>\n<p>N\u00eb t\u00eb ardhmen planifikojm\u00eb t\u00eb transferojm\u00eb sh\u00ebrbimet n\u00ebse kuptojm\u00eb q\u00eb k\u00ebrkesa p\u00ebr t\u00eb dh\u00ebna b\u00ebhet shum\u00eb e ndryshme dhe k\u00ebrkohet n\u00eb nj\u00eb num\u00ebr t\u00eb pap\u00ebrcaktuar kolonash. Kjo tashm\u00eb \u00ebsht\u00eb nj\u00eb detyr\u00eb jo p\u00ebr Postgres.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0435 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u0442\u043e \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0432 Elastic.<\/p>\n<h2>\u2318\u2318\u2318<\/h2>\n<p>\n\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f ElasticSearch \u0438 \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435. \u0411\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \ud83d\ude42<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/503214\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82735,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82734","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\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e\" \/>\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\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch\" \/>\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\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 Highload-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch\" \/>\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-05-24T11:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-24T11:42:22+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\udd47\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 Highload-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch | ProHoster","description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","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\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 Highload-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","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-05-24T11:42:22+00:00","article:modified_time":"2020-05-24T11:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82734","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 15:32:25","updated":"2022-09-28 21:13:07"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/82734","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=82734"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/82734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/82735"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=82734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=82734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=82734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}