{"id":31137,"date":"2019-10-31T21:39:40","date_gmt":"2019-10-31T18:39:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ignite-service-grid-perezagruzka\/"},"modified":"2019-10-31T21:39:40","modified_gmt":"2019-10-31T18:39:40","slug":"ignite-service-grid-perezagruzka","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2014 re\u0161tart","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>26. febru\u00e1ra sme usporiadali meetup Apache Ignite GreenSource, kde vystupovali kontrib\u00fatori open source projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. D\u00f4le\u017eitou udalos\u0165ou v \u017eivote tejto komunity bola prestavba komponentu <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, ktor\u00fd umo\u017e\u0148uje nasadi\u0165 pou\u017e\u00edvate\u013esk\u00e9 microservices priamo v klasteri Ignite. O tomto n\u00e1ro\u010dnom procese na meetupe hovoril <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Viacheslav Daradur<\/a><\/noindex>, softv\u00e9rov\u00fd in\u017einier a u\u017e viac ako dva roky kontrib\u00fator Apache Ignite.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/9054072fe26af4a45bbcae80add90a1e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nZa\u010dneme s t\u00fdm, \u010do vlastne Apache Ignite je. Je to datab\u00e1za, ktor\u00e1 predstavuje distribuovan\u00e9 Key\/Value \u00falo\u017eisko s podporou SQL, transak\u010dnosti a caching. Okrem toho, Ignite umo\u017e\u0148uje nasadi\u0165 pou\u017e\u00edvate\u013esk\u00e9 slu\u017eby priamo v klasteri Ignite. V\u00fdvoj\u00e1rovi s\u00fa k dispoz\u00edcii v\u0161etky n\u00e1stroje, ktor\u00e9 Ignite pon\u00faka \u2014 distribuovan\u00e9 d\u00e1tov\u00e9 \u0161trukt\u00fary, Messaging, Streaming, Compute a Data Grid. Napr\u00edklad, pri pou\u017eit\u00ed Data Grid odpad\u00e1 probl\u00e9m spr\u00e1vy samostatnej infra\u0161trukt\u00fary pre \u00falo\u017eisko d\u00e1t a, ako d\u00f4sledok, s t\u00fdm spojen\u00e9 n\u00e1klady.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPou\u017eit\u00edm API Service Grid je mo\u017en\u00e9 nasadi\u0165 slu\u017ebu, ak jednoducho uvediete v konfigur\u00e1cii sch\u00e9mu nasadenia a, samozrejme, samotn\u00fa slu\u017ebu.<\/p>\n<p>Obvykle je sch\u00e9ma nasadenia \u2014 to je ur\u010denie po\u010dtu in\u0161tanci\u00ed, ktor\u00e9 by mali by\u0165 nasaden\u00e9 na uzloch klastera. Existuj\u00fa dve typick\u00e9 sch\u00e9my nasadenia. Prv\u00e1 \u2014 je Cluster Singleton: v akomko\u013evek okamihu bude v klastere zaru\u010dene dostupn\u00fd jeden exempl\u00e1r pou\u017e\u00edvate\u013eskej slu\u017eby. Druh\u00e1 \u2014 je Node Singleton: na ka\u017edom uzle klastera je nasaden\u00fd jeden exempl\u00e1r slu\u017eby. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPou\u017e\u00edvate\u013e m\u00f4\u017ee tie\u017e ur\u010di\u0165 po\u010det in\u0161tanci\u00ed slu\u017eby v celom klasteri a definova\u0165 predik\u00e1t na filtrovanie vhodn\u00fdch uzlov. Pri takomto scen\u00e1ri Service Grid s\u00e1m vypo\u010d\u00edta optim\u00e1lne rozdelenie pre nasadenie slu\u017eieb.<\/p>\n<p>Okrem toho existuje funkcia naz\u00fdvan\u00e1 Affinity Service. Affinity je funkcia, ktor\u00e1 ur\u010duje vz\u0165ah medzi k\u013e\u00fa\u010dmi a part\u00edciami a vz\u0165ah medzi part\u00edciami a uzlami v topol\u00f3gii. Na z\u00e1klade k\u013e\u00fa\u010da je mo\u017en\u00e9 ur\u010di\u0165 prim\u00e1rny uzol, na ktorom s\u00fa ulo\u017een\u00e9 d\u00e1ta. Takto je mo\u017en\u00e9 asociova\u0165 va\u0161u vlastn\u00fa slu\u017ebu s k\u013e\u00fa\u010dom a cache affinity-funkcie. V pr\u00edpade zmeny affinity-funkcie d\u00f4jde k automatick\u00e9mu redeployu. Slu\u017eba bude v\u017edy umiestnen\u00e1 bl\u00edzko s d\u00e1tami, s ktor\u00fdmi m\u00e1 manipulova\u0165, a t\u00fdm p\u00e1dom zn\u00ed\u017ei n\u00e1klady na pr\u00edstup k inform\u00e1ci\u00e1m. Tak\u00fdto model m\u00f4\u017eeme nazva\u0165 ak\u00fdmsi kolokovan\u00fdm v\u00fdpo\u010dtom.<\/p>\n<p>Teraz, ke\u010f sme rozobrali, v \u010dom spo\u010d\u00edva kr\u00e1sa Service Grid, rozpr\u00e1vame o jeho hist\u00f3rii v\u00fdvoja.<\/p>\n<h2>\u010co bolo predt\u00fdm<\/h2>\n<p>\nPredch\u00e1dzaj\u00faca implement\u00e1cia Service Grid bola zalo\u017een\u00e1 na transak\u010dne replikovanom syst\u00e9movom cache Ignite. Pod slovom \u201ecache\u201c v Ignite sa rozumie \u00falo\u017eisko. To znamen\u00e1, \u017ee to nie je ni\u010d do\u010dasn\u00e9, ako by sa mohlo zda\u0165. Napriek tomu, \u017ee cache je replikovate\u013en\u00fd a ka\u017ed\u00fd uzol obsahuje cel\u00fd s\u00fabor d\u00e1t, vo vn\u00fatri m\u00e1 cache partitioned zobrazenie. To s\u00favis\u00ed s optimaliz\u00e1ciou \u00falo\u017e\u00edsk. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010co sa stalo, ke\u010f chcel pou\u017e\u00edvate\u013e nasadi\u0165 slu\u017ebu?<\/p>\n<ul>\n<li>V\u0161etky uzly v clustri sa prihl\u00e1sili na aktualiz\u00e1ciu d\u00e1t v \u00falo\u017eisku prostredn\u00edctvom vstavan\u00e9ho mechanizmu Continuous Query.\n<\/li>\n<li>Uzol-initi\u00e1tor pod read-committed transakciou vykonal v datab\u00e1ze z\u00e1pis, ktor\u00fd obsahoval konfigur\u00e1ciu slu\u017eby, vr\u00e1tane serializovanej in\u0161tancie.\n<\/li>\n<li>Pri prijat\u00ed ozn\u00e1menia o novej z\u00e1pise koordin\u00e1tor vypo\u010d\u00edtal rozdelenie na z\u00e1klade konfigur\u00e1cie. Z\u00edskan\u00fd objekt bol zap\u00edsan\u00fd sp\u00e4\u0165 do datab\u00e1zy.\n<\/li>\n<li>Ak uzol vstupil do rozdelenia, koordin\u00e1tor ho musel nasadi\u0165.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u010co n\u00e1s neuspokojovalo<\/h2>\n<p>\nV istom momente sme dospeli k z\u00e1veru, \u017ee takto sa s slu\u017ebami pracova\u0165 ned\u00e1. D\u00f4vodov bolo nieko\u013eko.<\/p>\n<p>Ak po\u010das nasadenia do\u0161lo k nejakej chybe, mohla sa zisti\u0165 len z logov toho uzla, kde k tomu do\u0161lo. Existoval len asynchr\u00f3nny deployment, tak\u017ee po vr\u00e1ten\u00ed pou\u017e\u00edvate\u013eskej kontroly od met\u00f3dy deploymentu bolo potrebn\u00e9 nejak\u00e9 dodato\u010dn\u00e9 \u010dasov\u00e9 obdobie na \u0161tart slu\u017eby \u2014 a v tomto \u010dase pou\u017e\u00edvate\u013e nemohol ni\u010d spravova\u0165. Aby sme mohli \u010falej rozv\u00edja\u0165 Service Grid, prid\u00e1va\u0165 nov\u00e9 funkcie, pri\u0165ahova\u0165 nov\u00fdch pou\u017e\u00edvate\u013eov a zjednodu\u0161ova\u0165 \u017eivot v\u0161etk\u00fdm, bolo potrebn\u00e9 nie\u010do zmeni\u0165.<\/p>\n<p>Pri n\u00e1vrhu novej Service Grid sme predov\u0161etk\u00fdm chceli zabezpe\u010di\u0165 z\u00e1ruku synchronn\u00e9ho nasadenia: akon\u00e1hle sa pou\u017e\u00edvate\u013eovi vr\u00e1ti kontrola od API, okam\u017eite m\u00f4\u017ee vyu\u017e\u00edva\u0165 slu\u017eby. Taktie\u017e sme chceli da\u0165 inici\u00e1torovi mo\u017enos\u0165 spracov\u00e1va\u0165 chyby nasadenia.<\/p>\n<p>Okrem toho sme chceli zjednodu\u0161i\u0165 implement\u00e1ciu, a to tak, aby sme sa vyhli transakci\u00e1m a rebalance. Napriek tomu, \u017ee cache je replikovan\u00e1 a vyv\u00e1\u017eenie ch\u00fdba, po\u010das ve\u013ek\u00e9ho nasadenia s mno\u017estvom uzlov vznikali probl\u00e9my. Pri zmene topol\u00f3gie musia uzly vymie\u0148a\u0165 inform\u00e1cie a pri ve\u013ekom nasaden\u00ed m\u00f4\u017eu by\u0165 tieto d\u00e1ta ve\u013emi ve\u013ek\u00e9.<\/p>\n<p>Ke\u010f bola topol\u00f3gia nestabiln\u00e1, koordin\u00e1tor musel prepo\u010d\u00edtava\u0165 rozlo\u017eenie slu\u017eieb. A vo v\u0161eobecnosti, ke\u010f sa pracuje s transakciami v nestabilej topol\u00f3gii, m\u00f4\u017ee to vies\u0165 k \u0165a\u017eko predv\u00eddate\u013en\u00fdm chyb\u00e1m.<\/p>\n<h2>Probl\u00e9my<\/h2>\n<p>\nAk\u00e9 glob\u00e1lne zmeny by boli bez sprievodn\u00fdch probl\u00e9mov? Prv\u00fdm z nich bola zmena topol\u00f3gie. Je potrebn\u00e9 pochopi\u0165, \u017ee v ktoromko\u013evek momente, aj v \u010dase nasadenia slu\u017eby, m\u00f4\u017ee uzol vst\u00fapi\u0165 do klastru alebo z neho vyst\u00fapi\u0165. Navy\u0161e, ak uzol vst\u00fapi do klastru v \u010dase nasadenia, bude potrebn\u00e9 konzistentne prenies\u0165 v\u0161etky inform\u00e1cie o slu\u017eb\u00e1ch do nov\u00e9ho uzla. A hovor\u00edme nielen o tom, \u010do u\u017e bolo nasaden\u00e9, ale aj o aktu\u00e1lnych a bud\u00facich nasadeniach.<\/p>\n<p>To je len jeden z probl\u00e9mov, ktor\u00e9 m\u00f4\u017eeme zhroma\u017edi\u0165 do samostatn\u00e9ho zoznamu:<\/p>\n<ul>\n<li>Ako nasadi\u0165 staticky nakonfigurovan\u00e9 slu\u017eby pri \u0161tarte uzla?\n<\/li>\n<li>Vyst\u00fapenie uzla z klastru \u2013 \u010do robi\u0165, ak uzol hostil slu\u017eby?\n<\/li>\n<li>\u010co robi\u0165, ak sa zmenil koordin\u00e1tor?\n<\/li>\n<li>\u010co robi\u0165, ak sa klient op\u00e4tovne pripojil k klastru?\n<\/li>\n<li>Je potrebn\u00e9 spracova\u0165 po\u017eiadavky na aktiv\u00e1ciu\/deaktiv\u00e1ciu a ako?\n<\/li>\n<li>A \u010do ak sa zavol\u00e1 destrukcia cache, a m\u00e1me na \u0148u naviazan\u00e9 affinity slu\u017eby?\n<\/li>\n<\/ul>\n<p>\nA to je rozhodne nie v\u0161etko. <\/p>\n<h2>Rie\u0161enie<\/h2>\n<p>\nAko cie\u013eov\u00fd sme zvolili pr\u00edstup Event Driven s implement\u00e1ciou komunik\u00e1cie procesov pomocou spr\u00e1v. V Ignite u\u017e s\u00fa implementovan\u00e9 dva komponenty, ktor\u00e9 umo\u017e\u0148uj\u00fa uzlom posiela\u0165 spr\u00e1vy medzi sebou \u2013 communication-spi a discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKomunik\u00e1cia SPI umo\u017e\u0148uje uzlom priamu v\u00fdmenu a prenos spr\u00e1v. Je ide\u00e1lny na prenos ve\u013ek\u00e9ho objemu d\u00e1t. Discovery SPI umo\u017e\u0148uje posla\u0165 spr\u00e1vu v\u0161etk\u00fdm uzlom v klastri. V \u0161tandardnej implement\u00e1cii sa to rob\u00ed v topol\u00f3gii \u201ekr\u00fa\u017eok\u201c. Existuje aj integr\u00e1cia so Zookeeperom, pri\u010dom sa pou\u017e\u00edva topol\u00f3gia \u201ehviezda\u201c. D\u00f4le\u017eit\u00e9 je tie\u017e poznamena\u0165, \u017ee discovery SPI poskytuje z\u00e1ruky, \u017ee spr\u00e1va bude doru\u010den\u00e1 v spr\u00e1vnom porad\u00ed v\u0161etk\u00fdm uzlom. <\/p>\n<p>Pozrime sa na protokol nasadzovania. V\u0161etky pou\u017e\u00edvate\u013esk\u00e9 po\u017eiadavky na nasadenie a odnasadenie sa odosielaj\u00fa cez discovery SPI. To poskytuje nasleduj\u00face <i>z\u00e1ruky<\/i>:<\/p>\n<ul>\n<li>Po\u017eiadavka bude prijat\u00e1 v\u0161etk\u00fdmi uzlami v klastri. To umo\u017en\u00ed pokra\u010dova\u0165 v spracovan\u00ed po\u017eiadavky pri zmene koordin\u00e1tora. To tie\u017e znamen\u00e1, \u017ee ka\u017ed\u00e9mu uzlu bud\u00fa k dispoz\u00edcii v\u0161etky potrebn\u00e9 metad\u00e1ta, ako je konfigur\u00e1cia slu\u017eby a jej serializovan\u00fd in\u0161tancia.\n<\/li>\n<li>Pr\u00edsny poriadok doru\u010dovania spr\u00e1v umo\u017e\u0148uje rie\u0161i\u0165 konflikty konfigur\u00e1ci\u00ed a konkuren\u010dn\u00fdch po\u017eiadaviek.\n<\/li>\n<li>Ke\u010f\u017ee vstup uzla do topol\u00f3gie sa taktie\u017e spracov\u00e1va cez discovery SPI, nov\u00fd uzol dostane v\u0161etky potrebn\u00e9 d\u00e1ta na pr\u00e1cu so slu\u017ebami.\n<\/li>\n<\/ul>\n<p>\nPri prijat\u00ed po\u017eiadavky uzly v klastri overuj\u00fa jej platnos\u0165 a formuluj\u00fa \u00falohy na spracovanie. Tieto \u00falohy sa ukladaj\u00fa do fronty a n\u00e1sledne sa spracov\u00e1vaj\u00fa v inom vl\u00e1kne samostatn\u00fdm pracovn\u00edkom. Je to realizovan\u00e9 t\u00fdmto sp\u00f4sobom, preto\u017ee nasadenie m\u00f4\u017ee trva\u0165 zna\u010dn\u00fd \u010das a oneskorenie cenn\u00e9ho discovery toku je neprijate\u013en\u00e9.<\/p>\n<p>V\u0161etky po\u017eiadavky z fronty spracov\u00e1va mana\u017e\u00e9r nasadenia. M\u00e1 \u0161peci\u00e1lneho pracovn\u00edka, ktor\u00fd \u0165ah\u00e1 \u00falohu z tejto fronty a inicializuje ju, aby sa za\u010dalo nasadzovanie. Potom nasleduj\u00fa tieto akcie:<\/p>\n<ol>\n<li>Ka\u017ed\u00fd uzol samostatne vypo\u010d\u00edta rozdelenie pomocou novej deterministickej funkcie asign\u00e1cie.\n<\/li>\n<li>Uzly vytv\u00e1raj\u00fa spr\u00e1vu s v\u00fdsledkami nasadenia a posielaj\u00fa ju koordin\u00e1torovi.\n<\/li>\n<li>Koordin\u00e1tor agreguje v\u0161etky spr\u00e1vy a formul\u00e1r v\u00fdsledok cel\u00e9ho procesu nasadenia, ktor\u00fd sa posiela cez discovery SPI v\u0161etk\u00fdm uzlom v klastri.\n<\/li>\n<li>Po prijat\u00ed v\u00fdsledku sa proces nasadenia ukon\u010d\u00ed, po \u010dom sa \u00faloha vyma\u017ee z fronty.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2014 re\u0161tart\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nov\u00fd event-driven dizajn: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Ak v \u010dase nasadenia do\u0161lo k chybe, uzol okam\u017eite zahrnie t\u00fato chybu do spr\u00e1vy, ktor\u00fa posiela koordin\u00e1torovi. Po agreg\u00e1cii spr\u00e1v bude koordin\u00e1tor ma\u0165 inform\u00e1cie o v\u0161etk\u00fdch chyb\u00e1ch po\u010das nasadenia a po\u0161le t\u00fato spr\u00e1vu prostredn\u00edctvom discovery-spi. Inform\u00e1cie o chyb\u00e1ch bud\u00fa k dispoz\u00edcii na akomko\u013evek uzle v klastru. <\/p>\n<p>Pod\u013ea tohto algoritmu sa spracov\u00e1vaj\u00fa v\u0161etky d\u00f4le\u017eit\u00e9 udalosti v Service Grid. Napr\u00edklad zmena topol\u00f3gie je tie\u017e spr\u00e1va prostredn\u00edctvom discovery-spi. A vo v\u0161eobecnosti, ak porovn\u00e1me to, \u010do bolo, protokol sa uk\u00e1zal ako dos\u0165 \u013eahk\u00fd a spo\u013eahliv\u00fd. Tak, aby mohol spracova\u0165 ak\u00fako\u013evek situ\u00e1ciu po\u010das nasadenia. <\/p>\n<h2>\u010co bude \u010falej<\/h2>\n<p>\nTeraz k pl\u00e1nom. Ak\u00e9ko\u013evek ve\u013ek\u00e9 vylep\u0161enie v projekte Ignite sa vykon\u00e1va ako iniciat\u00edva na zlep\u0161enie Ignite, takzvan\u00fd IEP. Pre redesign Service Grid tie\u017e existuje IEP \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/IGNITE\/IEP-17%3A+Oil+Change+in+Service+Grid\">IEP \u010d. 17<\/a><\/noindex> s vtipn\u00fdm n\u00e1zvom \u201eV\u00fdm\u011bna oleja v Service Gride\u201c. Ale v skuto\u010dnosti sme nezmenili olej v motore, ale cel\u00fa pohonn\u00fa jednotku. <\/p>\n<p>\u00dalohy v IEP sme rozdelili na 2 f\u00e1zy. Prv\u00e1 \u2014 ve\u013ek\u00e1 f\u00e1za, ktor\u00e1 spo\u010d\u00edva v prepracovan\u00ed protokolu nasadenia. T\u00e1 u\u017e bola zl\u00fa\u010den\u00e1 do master, m\u00f4\u017eete vysk\u00fa\u0161a\u0165 nov\u00fd Service Grid, ktor\u00fd sa objav\u00ed vo verzii 2.8. Druh\u00e1 f\u00e1za zah\u0155\u0148a mno\u017estvo \u010fal\u0161\u00edch \u00faloh:<\/p>\n<ul>\n<li>Hotov\u00e9 redeploy\n<\/li>\n<li>Versionovanie slu\u017eieb\n<\/li>\n<li>Zv\u00fd\u0161enie odolnosti vo\u010di poruch\u00e1m\n<\/li>\n<li>Tenk\u00fd klient\n<\/li>\n<li>N\u00e1stroje na monitorovanie a sledovanie r\u00f4znych metr\u00edk\n<\/li>\n<\/ul>\n<p>\nNa z\u00e1ver v\u00e1m m\u00f4\u017eeme odporu\u010di\u0165 Service Grid na budovanie syst\u00e9mov s vysokou dostupnos\u0165ou a odolnos\u0165ou vo\u010di poruch\u00e1m. Takisto v\u00e1s poz\u00fdvame k n\u00e1m na <noindex><a rel=\"nofollow\" href=\"mailto:dev@ignite.apache.org\">dev-list<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"mailto:user@ignite.apache.org\">user-list<\/a><\/noindex> podeli\u0165 sa so svojou sk\u00fasenos\u0165ou. Va\u0161a sk\u00fasenos\u0165 je skuto\u010dne d\u00f4le\u017eit\u00e1 pre komunitu, pom\u00f4\u017ee to pochopi\u0165, kam sa pos\u00fava\u0165 \u010falej a ako v bud\u00facnosti rozv\u00edja\u0165 tento komponent.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sberbank\/blog\/447264\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>26 \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043c\u0438\u0442\u0430\u043f Apache Ignite GreenSource, \u0433\u0434\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0435\u0440\u044b open source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Apache Ignite. \u0412\u0430\u0436\u043d\u044b\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c \u0432 \u0436\u0438\u0437\u043d\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Ignite Service Grid, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Ignite. \u041e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430 \u043c\u0438\u0442\u0430\u043f\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432 \u0414\u0430\u0440\u0430\u0434\u0443\u0440, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0435\u0440 Apache [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23105,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31137","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"26 \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043c\u0438\u0442\u0430\u043f Apache Ignite GreenSource, \u0433\u0434\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0435\u0440\u044b open source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Apache Ignite.\" \/>\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\/sk\/blog\/administrirovanie\/ignite-service-grid-perezagruzka\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\udd47Ignite Service Grid \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"26 \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043c\u0438\u0442\u0430\u043f Apache Ignite GreenSource, \u0433\u0434\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0435\u0440\u044b open source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Apache Ignite.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ignite-service-grid-perezagruzka\" \/>\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=\"2019-10-31T18:39:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:40+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\udd47Ignite Service Grid \u2014 re\u0161tart | ProHoster","description":"26. febru\u00e1ra sme organizovali meetup Apache Ignite GreenSource, kde vyst\u00fapili prispievatelia projektu open source Apache Ignite.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\udd47Ignite Service Grid \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 | ProHoster","og:description":"26 \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043c\u0438\u0442\u0430\u043f Apache Ignite GreenSource, \u0433\u0434\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0435\u0440\u044b open source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Apache Ignite.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","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":"2019-10-31T18:39:40+00:00","article:modified_time":"2019-10-31T18:39:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31137","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":"2026-01-21 04:41:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:16:35","updated":"2026-01-21 04:41:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}