{"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\/cs\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2013 restart","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>26. \u00fanora jsme po\u0159\u00e1dali meetup Apache Ignite GreenSource, na kter\u00e9m vystupovali p\u0159isp\u011bvatel\u00e9 projektu open source. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>D\u016fle\u017eit\u00fdm miln\u00edkem v \u017eivot\u011b tohoto spole\u010denstv\u00ed byla p\u0159estavba komponentu <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, kter\u00fd umo\u017e\u0148uje nasazen\u00ed u\u017eivatelsk\u00fdch mikroslu\u017eeb p\u0159\u00edmo v clusteru Ignite. O tomto slo\u017eit\u00e9m procesu na meetupu hovo\u0159il <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Vjacheslav Daradur<\/a><\/noindex>, softwarov\u00fd in\u017een\u00fdr a ji\u017e v\u00edce ne\u017e dva roky p\u0159isp\u011bvatel Apache Ignite.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" 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\u010dn\u011bme t\u00edm, co vlastn\u011b Apache Ignite je. Je to datab\u00e1ze, kter\u00e1 p\u0159edstavuje distribuovan\u00e9 \u00falo\u017ei\u0161t\u011b Key\/Value s podporou SQL, transak\u010dnosti a cachov\u00e1n\u00ed. Nav\u00edc Ignite umo\u017e\u0148uje nasazen\u00ed u\u017eivatelsk\u00fdch slu\u017eeb p\u0159\u00edmo v clusteru Ignite. V\u00fdvoj\u00e1\u0159i maj\u00ed k dispozici v\u0161echny n\u00e1stroje, kter\u00e9 Ignite nab\u00edz\u00ed \u2014 distribuovan\u00e9 datov\u00e9 struktury, Messaging, Streaming, Compute a Data Grid. Nap\u0159\u00edklad p\u0159i pou\u017eit\u00ed Data Grid odpad\u00e1 probl\u00e9m s administrac\u00ed samostatn\u00e9 infrastruktury pro \u00falo\u017ei\u0161t\u011b dat, a t\u00edm i s t\u00edm spojen\u00e9 provozn\u00ed n\u00e1klady.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPou\u017eit\u00edm API Service Grid lze nasadit slu\u017ebu jednodu\u0161e t\u00edm, \u017ee v konfiguraci uvedete sch\u00e9ma nasazen\u00ed a p\u0159\u00edslu\u0161nou slu\u017ebu.<\/p>\n<p>Obvykle je sch\u00e9ma nasazen\u00ed specifikac\u00ed po\u010dtu instanc\u00ed, kter\u00e9 by m\u011bly b\u00fdt nasazeny na uzlech clusteru. Existuj\u00ed dv\u011b typick\u00e9 sch\u00e9mata nasazen\u00ed. Prvn\u00ed je Cluster Singleton: v jak\u00e9mkoli okam\u017eiku bude v clusteru zaru\u010deno, \u017ee je dostupn\u00e1 jedna instance u\u017eivatelsk\u00e9 slu\u017eby. Druh\u00e9 je Node Singleton: na ka\u017ed\u00e9m uzlu clusteru je nasazena jedna instance slu\u017eby. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nU\u017eivatel tak\u00e9 m\u016f\u017ee specifikovat po\u010det instanc\u00ed slu\u017eby v cel\u00e9m clusteru a definovat predik\u00e1t pro filtrov\u00e1n\u00ed vhodn\u00fdch uzl\u016f. V takov\u00e9m sc\u00e9n\u00e1\u0159i si Service Grid s\u00e1m vypo\u010d\u00edt\u00e1 optim\u00e1ln\u00ed rozlo\u017een\u00ed pro nasazen\u00ed slu\u017eeb.<\/p>\n<p>Krom\u011b toho existuje takov\u00e1 funkce jako Affinity Service. Affinity je funkce, kter\u00e1 ur\u010duje vztah kl\u00ed\u010d\u016f k parti\u00edm a vztah parti\u00ed k uzl\u016fm v topologii. Pomoc\u00ed kl\u00ed\u010de lze ur\u010dit prim\u00e1rn\u00ed uzel, na kter\u00e9m jsou data ulo\u017eena. T\u00edmto zp\u016fsobem m\u016f\u017eete asociovat va\u0161i vlastn\u00ed slu\u017ebu s kl\u00ed\u010dem a cache affinity funkce. V p\u0159\u00edpad\u011b zm\u011bny affinity funkce dojde k automatick\u00e9mu redeploy. Tak bude slu\u017eba v\u017edy um\u00edst\u011bna bl\u00edzko dat, se kter\u00fdmi mus\u00ed manipulovat, a t\u00edm se sn\u00ed\u017e\u00ed n\u00e1klady na p\u0159\u00edstup k informac\u00edm. Takovou sch\u00e9ma lze nazvat jak\u00fdmsi kolokovan\u00fdmi v\u00fdpo\u010dty.<\/p>\n<p>Nyn\u00ed, kdy\u017e jsme si objasnili, v \u010dem spo\u010d\u00edv\u00e1 kouzlo Service Grid, pov\u00edme si o jeho v\u00fdvoji.<\/p>\n<h2>Co bylo p\u0159edt\u00edm<\/h2>\n<p>\nP\u0159edchoz\u00ed realizace Service Grid byla zalo\u017eena na transak\u010dn\u00edm replikovan\u00e9m syst\u00e9mov\u00e9m cache Ignite. Pod slovem \"cache\" v Ignite se rozum\u00ed \u00falo\u017ei\u0161t\u011b. Tedy to nen\u00ed n\u011bco do\u010dasn\u00e9ho, jak by se mohlo zd\u00e1t. I kdy\u017e je cache replikovan\u00e1 a ka\u017ed\u00fd uzel obsahuje cel\u00fd soubor dat, uvnit\u0159 m\u00e1 cache partitionovan\u00e9 zobrazen\u00ed. To souvis\u00ed s optimalizac\u00ed \u00falo\u017ei\u0161\u0165. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCo se d\u011blo, kdy\u017e u\u017eivatel cht\u011bl nasadit slu\u017ebu?<\/p>\n<ul>\n<li>V\u0161echny uzly v clusteru se p\u0159ihla\u0161ovaly k aktualizaci dat v \u00falo\u017ei\u0161ti pomoc\u00ed vestav\u011bn\u00e9ho mechanismu Continuous Query.\n<\/li>\n<li>Uzel inici\u00e1tor v transakci read-committed provedl z\u00e1pis do datab\u00e1ze, kter\u00fd obsahoval konfiguraci slu\u017eby, v\u010detn\u011b serializovan\u00e9ho instance.\n<\/li>\n<li>P\u0159i obdr\u017een\u00ed ozn\u00e1men\u00ed o nov\u00e9 polo\u017ece koordin\u00e1tor vypo\u010d\u00edtal rozlo\u017een\u00ed na z\u00e1klad\u011b konfigurace. Z\u00edskan\u00fd objekt byl zaps\u00e1n zp\u011bt do datab\u00e1ze.\n<\/li>\n<li>Pokud byl uzel zahrnut do rozlo\u017een\u00ed, koordin\u00e1tor ho m\u011bl nasadit.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Co n\u00e1m nevyhovovalo<\/h2>\n<p>\nV ur\u010dit\u00e9m okam\u017eiku jsme dosp\u011bli k z\u00e1v\u011bru: takto nelze pracovat se slu\u017ebami. P\u0159\u00ed\u010din bylo n\u011bkolik.<\/p>\n<p>Pokud b\u011bhem nasazen\u00ed do\u0161lo k n\u011bjak\u00e9 chyb\u011b, bylo mo\u017en\u00e9 o n\u00ed zjistit pouze ze z\u00e1znam\u016f toho uzlu, kde k tomu do\u0161lo. Existoval pouze asynchronn\u00ed deploy, tak\u017ee po vr\u00e1cen\u00ed u\u017eivatelsk\u00e9ho \u0159\u00edzen\u00ed od metody nasazen\u00ed bylo pot\u0159eba n\u011bjak\u00e9 dodate\u010dn\u00e9 \u010dasu na spu\u0161t\u011bn\u00ed slu\u017eby \u2013 a v tuto dobu u\u017eivatel nemohl nic \u0159\u00eddit. Abychom mohli Service Grid d\u00e1le rozv\u00edjet, vytv\u00e1\u0159et nov\u00e9 funkce, p\u0159itahovat nov\u00e9 u\u017eivatele a usnadnit v\u0161em \u017eivot, bylo pot\u0159eba n\u011bco zm\u011bnit.<\/p>\n<p>P\u0159i n\u00e1vrhu nov\u00e9 Service Grid jsme cht\u011bli p\u0159edev\u0161\u00edm zajistit synchronn\u00ed nasazen\u00ed: jakmile u\u017eivatel znovu p\u0159evezme kontrolu od API, m\u016f\u017ee ihned vyu\u017e\u00edvat slu\u017eby. Tak\u00e9 jsme cht\u011bli poskytnout inici\u00e1torovi mo\u017enost zpracov\u00e1vat chyby nasazen\u00ed.<\/p>\n<p>Krom\u011b toho jsme cht\u011bli usnadnit implementaci, konkr\u00e9tn\u011b se vyhnout transakc\u00edm a rebalance. I kdy\u017e je cache replikovan\u00e1 a vyv\u00e1\u017een\u00ed nen\u00ed, b\u011bhem velk\u00fdch nasazen\u00ed s mnoha uzly se objevovaly probl\u00e9my. P\u0159i zm\u011bn\u011b topologie je t\u0159eba, aby si uzly vym\u011b\u0148ovaly informace, a b\u011bhem velk\u00e9ho nasazen\u00ed mohou tyto \u00fadaje zab\u00edrat velmi mnoho m\u00edsta.<\/p>\n<p>Kdy\u017e byla topologie nestabiln\u00ed, koordin\u00e1tor musel p\u0159epo\u010d\u00edt\u00e1vat rozlo\u017een\u00ed slu\u017eeb. A obecn\u011b, kdy\u017e je t\u0159eba pracovat s transakcemi na nestabiln\u00ed topologii, m\u016f\u017ee to v\u00e9st k obt\u00ed\u017en\u011b p\u0159edv\u00eddateln\u00fdm chyb\u00e1m.<\/p>\n<h2>Probl\u00e9my<\/h2>\n<p>\nJak\u00e9 glob\u00e1ln\u00ed zm\u011bny se v\u0161ak obejdou bez doprovodn\u00fdch probl\u00e9m\u016f? Prvn\u00ed z nich byla zm\u011bna topologie. Je t\u0159eba si uv\u011bdomit, \u017ee v ka\u017ed\u00e9m okam\u017eiku, dokonce i p\u0159i nasazen\u00ed slu\u017eby, m\u016f\u017ee uzel vstoupit do clusteru nebo z n\u011bj vystoupit. Nav\u00edc, pokud uzel vstoup\u00ed do clusteru b\u011bhem nasazen\u00ed, je nutn\u00e9 konzistentn\u011b p\u0159edat v\u0161echny informace o slu\u017eb\u00e1ch nov\u00e9mu uzlu. A to se net\u00fdk\u00e1 pouze toho, co ji\u017e bylo nasazeno, ale tak\u00e9 aktu\u00e1ln\u00edch a budouc\u00edch nasazen\u00ed.<\/p>\n<p>To je jen jeden z probl\u00e9m\u016f, kter\u00e9 lze sestavit do samostatn\u00e9ho seznamu:<\/p>\n<ul>\n<li>Jak nasadit staticky konfigurovan\u00e9 slu\u017eby p\u0159i spu\u0161t\u011bn\u00ed uzlu?\n<\/li>\n<li>Co d\u011blat, kdy\u017e uzel vystoup\u00ed z clusteru \u2013 co pokud uzel hostil slu\u017eby?\n<\/li>\n<li>Co d\u011blat, pokud se zm\u011bnil koordin\u00e1tor?\n<\/li>\n<li>Co d\u011blat, pokud se klient znovu p\u0159ipojil k clusteru?\n<\/li>\n<li>Je t\u0159eba zpracovat po\u017eadavky na aktivaci \/ deaktivaci a jak?\n<\/li>\n<li>A co kdy\u017e bylo vyvol\u00e1no zni\u010den\u00ed cache, a m\u00e1me na n\u011bj v\u00e1zan\u00e9 affinity slu\u017eby?\n<\/li>\n<\/ul>\n<p>\nA to rozhodn\u011b nen\u00ed v\u0161e. <\/p>\n<h2>\u0158e\u0161en\u00ed<\/h2>\n<p>\nJako c\u00edlov\u00fd p\u0159\u00edstup jsme zvolili Event Driven s realizac\u00ed komunikace proces\u016f pomoc\u00ed zpr\u00e1v. V Ignite jsou ji\u017e implementov\u00e1ny dva komponenty, kter\u00e9 umo\u017e\u0148uj\u00ed uzl\u016fm zas\u00edlat si zpr\u00e1vy navz\u00e1jem \u2013 communication-spi a discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommunication-spi umo\u017e\u0148uje uzl\u016fm p\u0159\u00edmo komunikovat a pos\u00edlat zpr\u00e1vy. Je dob\u0159e p\u0159izp\u016fsoben pro p\u0159enos velk\u00e9ho objemu dat. Discovery-spi umo\u017e\u0148uje zaslat zpr\u00e1vu v\u0161em uzl\u016fm v klastru. Ve standardn\u00ed implementaci se to prov\u00e1d\u00ed pomoc\u00ed topologie \"ring\". Existuje tak\u00e9 integrace se Zookeeperem, v tomto p\u0159\u00edpad\u011b se pou\u017e\u00edv\u00e1 topologie \"star\". Je tak\u00e9 t\u0159eba poznamenat d\u016fle\u017eit\u00fd bod: discovery-spi poskytuje z\u00e1ruky, \u017ee zpr\u00e1va bude doru\u010dena ve spr\u00e1vn\u00e9m po\u0159ad\u00ed v\u0161em uzl\u016fm. <\/p>\n<p>Pod\u00edvejme se na protokol nasazen\u00ed. V\u0161echny u\u017eivatelsk\u00e9 po\u017eadavky na nasazen\u00ed a odnasazen\u00ed jsou zas\u00edl\u00e1ny pomoc\u00ed discovery-spi. To p\u0159in\u00e1\u0161\u00ed n\u00e1sleduj\u00edc\u00ed <i>z\u00e1ruky<\/i>:<\/p>\n<ul>\n<li>Po\u017eadavek bude p\u0159ijat v\u0161emi uzly v klastru. To umo\u017en\u00ed pokra\u010dovat v zpracov\u00e1n\u00ed po\u017eadavku p\u0159i zm\u011bn\u011b koordin\u00e1tora. Tak\u00e9 to znamen\u00e1, \u017ee ka\u017ed\u00e9mu uzlu budou k dispozici v\u0161echny pot\u0159ebn\u00e9 metadata pro jedno zpr\u00e1vu, jako je konfigurace slu\u017eby a jej\u00ed serializovan\u00fd instance.\n<\/li>\n<li>P\u0159\u00edsn\u00fd po\u0159\u00e1dek doru\u010dov\u00e1n\u00ed zpr\u00e1v umo\u017e\u0148uje \u0159e\u0161it konflikty konfigurac\u00ed a konkuren\u010dn\u00edch po\u017eadavk\u016f.\n<\/li>\n<li>Jeliko\u017e vstup uzlu do topologie se tak\u00e9 zpracov\u00e1v\u00e1 p\u0159es discovery-spi, nov\u00fd uzel dostane v\u0161echny pot\u0159ebn\u00e9 \u00fadaje pro pr\u00e1ci se slu\u017ebami.\n<\/li>\n<\/ul>\n<p>\nP\u0159i obdr\u017een\u00ed po\u017eadavku uzly v klastru validuj\u00ed po\u017eadavek a vytv\u00e1\u0159ej\u00ed \u00fakoly k zpracov\u00e1n\u00ed. Tyto \u00fakoly se shroma\u017e\u010fuj\u00ed do fronty a pot\u00e9 jsou zpracov\u00e1ny v jin\u00e9m vl\u00e1kn\u011b samostatn\u00fdm workerem. To je realizov\u00e1no t\u00edmto zp\u016fsobem, proto\u017ee nasazen\u00ed m\u016f\u017ee trvat zna\u010dn\u00fd \u010das a zdr\u017een\u00ed drah\u00e9ho discovery-vl\u00e1kna je nep\u0159ijateln\u00e9.<\/p>\n<p>V\u0161echny po\u017eadavky z fronty zpracov\u00e1v\u00e1 deployment-manager. M\u00e1 speci\u00e1ln\u00ed worker, kter\u00fd vyt\u00e1hne \u00fakol z t\u00e9to fronty a inicializuje ho, aby zah\u00e1jil nasazen\u00ed. Pot\u00e9 n\u00e1sleduj\u00ed n\u00e1sleduj\u00edc\u00ed akce:<\/p>\n<ol>\n<li>Ka\u017ed\u00fd uzel samostatn\u011b vypo\u010d\u00edt\u00e1v\u00e1 rozd\u011blen\u00ed d\u00edky nov\u00e9 deterministick\u00e9 funkcionalit\u011b assignment.\n<\/li>\n<li>Uzly vytv\u00e1\u0159ej\u00ed zpr\u00e1vu s v\u00fdsledky nasazen\u00ed a pos\u00edlaj\u00ed ji koordin\u00e1torovi.\n<\/li>\n<li>Koordin\u00e1tor agreguje v\u0161echny zpr\u00e1vy a vytv\u00e1\u0159\u00ed v\u00fdsledek cel\u00e9ho procesu nasazen\u00ed, kter\u00fd je zasl\u00e1n prost\u0159ednictv\u00edm discovery-spi v\u0161em uzl\u016fm v klastru.\n<\/li>\n<li>Po obdr\u017een\u00ed v\u00fdsledku proces nasazen\u00ed kon\u010d\u00ed, po \u010dem\u017e je \u00fakol odstran\u011bn z fronty.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2013 restart\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nov\u00fd event-driven design: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Pokud p\u0159i nasazen\u00ed dojde k chyb\u011b, uzel okam\u017eit\u011b zahrne tuto chybu do zpr\u00e1vy, kterou ode\u0161le koordin\u00e1torovi. Po agregaci zpr\u00e1v bude m\u00edt koordin\u00e1tor informace o v\u0161ech chyb\u00e1ch b\u011bhem nasazen\u00ed a tuto zpr\u00e1vu ode\u0161le prost\u0159ednictv\u00edm discovery-spi. Informace o chyb\u00e1ch budou dostupn\u00e9 na jak\u00e9mkoliv uzlu v clusteru. <\/p>\n<p>Tento algoritmus zpracov\u00e1v\u00e1 v\u0161echna d\u016fle\u017eit\u00e1 ud\u00e1losti v Service Grid. Nap\u0159\u00edklad zm\u011bna topologie je tak\u00e9 zpr\u00e1vou prost\u0159ednictv\u00edm discovery-spi. Celkov\u011b, pokud to porovn\u00e1me s t\u00edm, co bylo d\u0159\u00edve, protokol se uk\u00e1zal jako dost lehk\u00fd a spolehliv\u00fd. Tak, aby bylo mo\u017en\u00e9 \u0159e\u0161it jakoukoliv situaci b\u011bhem nasazen\u00ed. <\/p>\n<h2>Co se bude d\u00edt d\u00e1l<\/h2>\n<p>\nNyn\u00ed k pl\u00e1n\u016fm. Jak\u00e9koliv v\u011bt\u0161\u00ed p\u0159epracov\u00e1n\u00ed v projektu Ignite je prov\u00e1d\u011bno jako iniciativa na zlep\u0161en\u00ed Ignite, naz\u00fdvan\u00e1 IEP. I redesign Service Grid m\u00e1 tak\u00e9 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\u00e1zvem \u201eV\u00fdm\u011bna oleje v Slu\u017eebn\u00ed M\u0159\u00ed\u017ece\u201c. Ale ve skute\u010dnosti jsme nevym\u011bnili olej v motoru, ale cel\u00fd motor. <\/p>\n<p>\u00dakoly v IEP jsme rozd\u011blili do 2 f\u00e1z\u00ed. Prvn\u00ed je velk\u00e1 f\u00e1ze, kter\u00e1 se zam\u011b\u0159uje na p\u0159epracov\u00e1n\u00ed protokolu nasazen\u00ed. Ta u\u017e byla slou\u010dena do masteru, m\u016f\u017eete vyzkou\u0161et nov\u00fd Service Grid, kter\u00fd se objev\u00ed ve verzi 2.8. Druh\u00e1 f\u00e1ze zahrnuje mnoho dal\u0161\u00edch \u00fakol\u016f:<\/p>\n<ul>\n<li>Hork\u00fd redeploy\n<\/li>\n<li>Versionov\u00e1n\u00ed slu\u017eeb\n<\/li>\n<li>Zvy\u0161ov\u00e1n\u00ed odolnosti proti v\u00fdpadk\u016fm\n<\/li>\n<li>Tenk\u00fd klient\n<\/li>\n<li>N\u00e1stroje pro monitorov\u00e1n\u00ed a po\u010d\u00edt\u00e1n\u00ed r\u016fzn\u00fdch metrik\n<\/li>\n<\/ul>\n<p>\nNakonec v\u00e1m m\u016f\u017eeme doporu\u010dit Service Grid pro vytv\u00e1\u0159en\u00ed syst\u00e9m\u016f s vysokou dostupnost\u00ed a odolnost\u00ed v\u016f\u010di v\u00fdpadk\u016fm. A tak\u00e9 v\u00e1s zveme 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> sd\u00edlet sv\u00e9 zku\u0161enosti. Va\u0161e zku\u0161enosti jsou opravdu d\u016fle\u017eit\u00e9 pro komunitu, pomohou pochopit, kam se d\u00e1l ub\u00edrat, jak v budoucnu vyv\u00edjet 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.3 - 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\/cs\/blog\/administrirovanie\/ignite-service-grid-perezagruzka\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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 restart | ProHoster","description":"26. \u00fanora jsme po\u0159\u00e1dali meet-up Apache Ignite GreenSource, kde vystupovali p\u0159isp\u011bvatel\u00e9 open source projektu Apache Ignite.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}