{"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\/ro\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2014 repornire","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pe 26 februarie am organizat un meetup Apache Ignite GreenSource, la care au participat contribuabili ai proiectului open source. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>Un eveniment important \u00een via\u021ba acestei comunit\u0103\u021bi a fost refacerea componentului <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, care permite desf\u0103\u0219urarea de microservicii personalizate direct \u00een clusterul Ignite. Despre acest proces complicat a vorbit la meetup <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Viacheslav Daradur<\/a><\/noindex>, inginer software \u0219i contribuabil la Apache Ignite de mai bine de doi ani.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" 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 \/>\nS\u0103 \u00eencepem cu ce este Apache Ignite. Este o baz\u0103 de date care reprezint\u0103 un depozit distribuit Key\/Value cu suport SQL, tranzac\u021bii \u0219i caching. \u00cen plus, Ignite permite desf\u0103\u0219urarea de servicii personalizate direct \u00een clusterul Ignite. Dezvoltatorului \u00eei devin accesibile toate uneltele oferite de Ignite - structuri de date distribuite, Messaging, Streaming, Compute \u0219i Data Grid. De exemplu, utiliz\u00e2nd Data Grid, problema administr\u0103rii unei infrastructuri separate pentru depozitul de date dispare \u0219i, ca urmare, costurile indirecte asociate.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFolosind API-ul Service Grid, este posibil s\u0103 desf\u0103\u0219ura\u021bi un serviciu, indic\u00e2nd pur \u0219i simplu \u00een configura\u021bie schema de desf\u0103\u0219urare \u0219i, respectiv, serviciul \u00eensu\u0219i.<\/p>\n<p>Schema de desf\u0103\u0219urare este, de obicei, specificarea num\u0103rului de instan\u021be care ar trebui s\u0103 fie desf\u0103\u0219urate pe nodurile clusterului. Exist\u0103 dou\u0103 scheme tipice de desf\u0103\u0219urare. Prima - Cluster Singleton: \u00een orice moment, \u00een cluster va fi garat un singur exemplar al serviciului personalizat. A doua - Node Singleton: pe fiecare nod al clusterului este desf\u0103\u0219urat c\u00e2te un exemplar al serviciului. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe asemenea, utilizatorul poate specifica num\u0103rul de instan\u021be ale serviciului \u00een \u00eentregul cluster \u0219i defini un predicat pentru filtrarea nodurilor corespunz\u0103toare. \u00cen acest scenariu, Service Grid va calcula singur distribu\u021bia optim\u0103 pentru desf\u0103\u0219urarea serviciilor.<\/p>\n<p>\u00cen plus, exist\u0103 o func\u021bionalitate numit\u0103 Affinity Service. Affinity este o func\u021bie care determin\u0103 leg\u0103tura \u00eentre chei \u0219i parti\u021bii, precum \u0219i leg\u0103tura dintre grupuri \u0219i noduri \u00een topologie. Pe baza cheii, se poate identifica nodul primar unde sunt stocate datele. Astfel, pute\u021bi asocia propriul serviciu cu cheia \u0219i cu memoria cache a func\u021biei de afinitate. \u00cen cazul \u00een care func\u021bia de afinitate se schimb\u0103, va avea loc o redeployare automat\u0103. Astfel, serviciul va fi \u00eentotdeauna plasat l\u00e2ng\u0103 datele pe care trebuie s\u0103 le manipuleze, reduc\u00e2nd astfel cheltuielile de acces la informa\u021bii. Aceast\u0103 schem\u0103 poate fi numit\u0103 o form\u0103 de calcul colocalizat.<\/p>\n<p>Acum, c\u0103 am discutat despre avantajele Service Grid, s\u0103 vorbim despre istoria sa de dezvoltare.<\/p>\n<h2>Ce a fost \u00eenainte<\/h2>\n<p>\nImplementarea anterioar\u0103 a Service Grid s-a bazat pe un sistem de cache replicat tranzac\u021bional Ignite. Prin cuv\u00e2ntul \u201ecache\u201d \u00een Ignite se \u00een\u021belege un depozit. Deci, nu este ceva temporar, a\u0219a cum s-ar putea crede. De\u0219i cache-ul este replicat \u0219i fiecare nod con\u021bine un set complet de date, \u00een interior cache-ul are o reprezentare parti\u021bionat\u0103. Acest lucru se datoreaz\u0103 optimiz\u0103rii depozitelor. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCe se \u00eent\u00e2mpla atunci c\u00e2nd un utilizator dorea s\u0103 implementeze un serviciu?<\/p>\n<ul>\n<li>Toate nodurile din cluster se aboneau la actualiz\u0103rile de date din depozit printr-un mecanism \u00eencorporat de Continuous Query.\n<\/li>\n<li>Nodul ini\u021biator, sub o tranzac\u021bie read-committed, f\u0103cea o \u00eenregistrare \u00een baz\u0103 care con\u021binea configura\u021bia serviciului, inclusiv instan\u021ba serializat\u0103.\n<\/li>\n<li>La primirea unei notific\u0103ri despre o nou\u0103 \u00eenregistrare, coordonatorul calcula distribu\u021bia pe baza configura\u021biei. Obiectul ob\u021binut era scris din nou \u00een baz\u0103.\n<\/li>\n<li>Dac\u0103 un nod intra \u00een distribu\u021bie, coordonatorul trebuia s\u0103-l implementeze.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Ce nu ne mul\u021bumea<\/h2>\n<p>\nLa un moment dat, am realizat c\u0103 nu putem lucra cu serviciile \u00een acest mod. Motivul era destul de variat.<\/p>\n<p>Dac\u0103 \u00een timpul implement\u0103rii ap\u0103rea o eroare, aceasta putea fi observat\u0103 doar din jurnalele nodului unde s-a petrecut totul. Exist\u0103 doar o implementare asincron\u0103, a\u0219a c\u0103, dup\u0103 ce utilizatorul rec\u0103p\u0103ta controlul de la metoda de implementare, era nevoie de un timp suplimentar pentru a porni serviciul \u2014 \u0219i \u00een acel timp, utilizatorul nu putea gestiona nimic. Pentru a dezvolta Service Grid \u00een continuare, a compune noi func\u021bionalit\u0103\u021bi, a atrage utilizatori noi \u0219i a face via\u021ba tuturor mai u\u0219oar\u0103, era necesar s\u0103 schimb\u0103m ceva.<\/p>\n<p>C\u00e2nd am proiectat noul Service Grid, ne-am dorit \u00een primul r\u00e2nd s\u0103 oferim o garan\u021bie pentru desf\u0103\u0219urarea sincronizat\u0103: de \u00eendat\u0103 ce utilizatorului i se restituie controlul de la API, acesta poate folosi imediat serviciile. De asemenea, ne-am dorit s\u0103 oferim ini\u021biatorului capacitatea de a gestiona erorile desf\u0103\u0219ur\u0103rii.<\/p>\n<p>\u00cen plus, am vrut s\u0103 facilit\u0103m implementarea, adic\u0103 s\u0103 elimin\u0103m tranzac\u021biile \u0219i rebalansarea. De\u0219i cache-ul este replicabil \u0219i nu exist\u0103 balsoing, \u00een timpul unei desf\u0103\u0219ur\u0103ri mari cu numeroase noduri au ap\u0103rut probleme. Atunci c\u00e2nd topologia se schimb\u0103, nodurile trebuie s\u0103 schimbe informa\u021bii, iar \u00een timpul unei desf\u0103\u0219ur\u0103ri mari aceste date pot c\u00e2nt\u0103ri foarte mult.<\/p>\n<p>C\u00e2nd topologia era instabil\u0103, coordonatorului \u00eei era necesar s\u0103 recalibreze distribu\u021bia serviciilor. \u0218i \u00een general, c\u00e2nd trebuie s\u0103 lucra\u021bi cu tranzac\u021bii pe o topologie instabil\u0103, acest lucru poate conduce la erori dificil de anticipat.<\/p>\n<h2>Probleme<\/h2>\n<p>\nCe transform\u0103ri globale ar fi f\u0103r\u0103 probleme \u00eenso\u021bitoare? Prima dintre ele a fost schimbarea topologiei. Trebuie s\u0103 \u00een\u021belegem c\u0103 \u00een orice moment, chiar \u0219i \u00een momentul desf\u0103\u0219ur\u0103rii serviciului, un nod poate intra \u00een cluster sau ie\u0219i din acesta. Mai mult, dac\u0103 un nod intr\u0103 \u00een cluster \u00een timpul desf\u0103\u0219ur\u0103rii, va fi necesar s\u0103 transmitem consistent toate informa\u021biile despre servicii c\u0103tre noul nod. Aici nu este vorba doar despre ceea ce a fost d\u00e9j\u00e0 desf\u0103\u0219urat, ci \u0219i despre desf\u0103\u0219ur\u0103rile actuale \u0219i viitoare.<\/p>\n<p>Aceasta este doar una dintre problemele care pot fi adunate \u00eentr-o list\u0103 separat\u0103:<\/p>\n<ul>\n<li>Cum se desf\u0103\u0219oar\u0103 serviciile configurate static la pornirea nodului?\n<\/li>\n<li>Ie\u0219irea unui nod din cluster \u2013 ce facem dac\u0103 nodul g\u0103zduia servicii?\n<\/li>\n<li>Ce facem dac\u0103 s-a schimbat coordonatorul?\n<\/li>\n<li>Ce facem dac\u0103 clientul s-a reconectat la cluster?\n<\/li>\n<li>Trebuie s\u0103 proces\u0103m cererile de activare \/ dezactivare \u0219i cum?\n<\/li>\n<li>\u0218i ce se \u00eent\u00e2mpl\u0103 dac\u0103 s-a apelat la distrugerea cache-ului, iar noi avem servicii de afinitate legate de acesta?\n<\/li>\n<\/ul>\n<p>\n\u0218i acestea nu sunt toate. <\/p>\n<h2>Solu\u021bie<\/h2>\n<p>\nCa scop, am ales abordarea bazat\u0103 pe evenimente, cu implementarea comunic\u0103rii \u00eentre procese prin mesaje. \u00cen Ignite sunt deja implementate dou\u0103 componente care permit nodurilor s\u0103 trimit\u0103 mesaje \u00eentre ele \u2013 communication-spi \u0219i discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommunication-spi permite nodurilor s\u0103 comunice direct \u0219i s\u0103 trimit\u0103 mesaje. Este potrivit pentru transferul unui volum mare de date. Discovery-spi permite trimiterea unui mesaj tuturor nodurilor din cluster. \u00cen implementarea standard, aceasta se face printr-o topologie de tip \"inel\". Exist\u0103, de asemenea, o integrare cu Zookeeper, caz \u00een care se utilizeaz\u0103 o topologie de tip \"stea\". De asemenea, merit\u0103 men\u021bionat un aspect important: discovery-spi ofer\u0103 garan\u021bii c\u0103 mesajul va fi livrat \u00een ordinea corect\u0103 tuturor nodurilor. <\/p>\n<p>S\u0103 analiz\u0103m protocolul de implementare. Toate cererile utilizatorilor pentru implementare \u0219i dezintegrare sunt trimise prin discovery-spi. Acest lucru ofer\u0103 urm\u0103toarele <i>garan\u021bii<\/i>:<\/p>\n<ul>\n<li>Cererile vor fi primite de toate nodurile din cluster. Acest lucru va permite continuarea proces\u0103rii cererii \u00een cazul schimb\u0103rii coordonatorului. De asemenea, aceasta \u00eenseamn\u0103 c\u0103 pentru un singur mesaj fiecare nod va avea toate metadatele necesare, cum ar fi configura\u021bia serviciului \u0219i instan\u021ba sa serializat\u0103.\n<\/li>\n<li>Ordinea strict\u0103 de livrare a mesajelor permite rezolvarea conflictelor de configura\u021bie \u0219i cererilor concurente.\n<\/li>\n<li>deoarece intrarea nodului \u00een topologie este, de asemenea, gestionat\u0103 prin discovery-spi, nodul nou va primi toate datele necesare pentru a lucra cu serviciile.\n<\/li>\n<\/ul>\n<p>\nLa primirea cererii, nodurile din cluster o valideaz\u0103 \u0219i formeaz\u0103 sarcini pentru procesare. Aceste sarcini sunt stocate \u00eentr-o coad\u0103 \u0219i apoi procesate \u00eentr-un alt fir de execu\u021bie de un lucr\u0103tor separat. Acest lucru este implementat astfel deoarece implementarea poate dura un timp semnificativ, iar \u00eent\u00e2rzierea fluxului de discovery ar fi inacceptabil\u0103.<\/p>\n<p>Toate cererile din coad\u0103 sunt procesate de managerul de implementare. Acesta are un lucr\u0103tor special care scoate o sarcin\u0103 din aceast\u0103 coad\u0103 \u0219i o ini\u021biaz\u0103 pentru a \u00eencepe desf\u0103\u0219urarea. Dup\u0103 aceasta, au loc urm\u0103toarele ac\u021biuni:<\/p>\n<ol>\n<li>Fiecare nod \u00ee\u0219i calculeaz\u0103 singur distribu\u021bia datorit\u0103 unei noi func\u021bii de asignare determinate.\n<\/li>\n<li>Nodurile formeaz\u0103 un mesaj cu rezultatele desf\u0103\u0219ur\u0103rii \u0219i \u00eel trimit coordonatorului.\n<\/li>\n<li>Coordonatorul agreg\u0103 toate mesajele \u0219i formeaz\u0103 rezultatul \u00eentregului proces de desf\u0103\u0219urare, care este trimis prin discovery-spi tuturor nodurilor din cluster.\n<\/li>\n<li>La primirea rezultatului, procesul de desf\u0103\u0219urare se finalizeaz\u0103, dup\u0103 care sarcina este eliminat\u0103 din coad\u0103.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2014 repornire\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Noua design bazat pe evenimente: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Dac\u0103 a ap\u0103rut o eroare \u00een momentul desf\u0103\u0219ur\u0103rii, nodul include imediat aceast\u0103 eroare \u00een mesajul pe care \u00eel trimite coordonatorului. Dup\u0103 agregarea mesajelor, coordonatorul va avea informa\u021bii despre toate erorile din timpul desf\u0103\u0219ur\u0103rii \u0219i va trimite acest mesaj prin discovery-spi. Informa\u021biile despre erori vor fi disponibile pe orice nod din cluster. <\/p>\n<p>Conform acestui algoritm, toate evenimentele importante din Service Grid sunt procesate. De exemplu, schimbarea topologiei este, de asemenea, un mesaj prin discovery-spi. \u00cen general, comparativ cu ceea ce era \u00eenainte, protocolul s-a dovedit a fi destul de u\u0219or \u0219i fiabil. At\u00e2t de mult, \u00eenc\u00e2t poate gestiona orice situa\u021bie \u00een timpul desf\u0103\u0219ur\u0103rii. <\/p>\n<h2>Ce urmeaz\u0103<\/h2>\n<p>\nAcum despre planuri. Orice modificare major\u0103 \u00een proiectul Ignite este realizat\u0103 ca o ini\u021biativ\u0103 de \u00eembun\u0103t\u0103\u021bire a Ignite, a\u0219a-numitul IEP. Redesign-ul Service Grid are, de asemenea, un IEP - <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/IGNITE\/IEP-17%3A+Oil+Change+in+Service+Grid\">IEP nr. 17<\/a><\/noindex> cu un nume amuzant, \u00abSchimbarea uleiului \u00een Service Grid\u00bb. Dar, de fapt, nu am schimbat uleiul din motor, ci motorul \u00eentreg. <\/p>\n<p>Am \u00eemp\u0103r\u021bit sarcinile din IEP \u00een 2 faze. Prima faz\u0103 este o faz\u0103 major\u0103, care const\u0103 \u00een refacerea protocolului de desf\u0103\u0219urare. Aceasta a fost deja integrat\u0103 \u00een master, poate fi testat noul Service Grid care va ap\u0103rea \u00een versiunea 2.8. A doua faz\u0103 include multe alte sarcini:<\/p>\n<ul>\n<li>Redesf\u0103\u0219urare la cald\n<\/li>\n<li>Versionarea serviciilor\n<\/li>\n<li>Cre\u0219terea disponibilit\u0103\u021bii\n<\/li>\n<li>Client sub\u021bire\n<\/li>\n<li>Instrumente de monitorizare \u0219i calculare a diverselor metrici\n<\/li>\n<\/ul>\n<p>\n\u00cen final, v\u0103 recomand\u0103m Service Grid pentru construirea sistemelor de \u00eenalt\u0103 disponibilitate. De asemenea, v\u0103 invit\u0103m s\u0103 ne \u00eemp\u0103rt\u0103\u0219i\u021bi experien\u021ba dvs. \u00een <noindex><a rel=\"nofollow\" href=\"mailto:dev@ignite.apache.org\">dev-list<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"mailto:user@ignite.apache.org\">user-list<\/a><\/noindex> Experien\u021ba dvs. este cu adev\u0103rat important\u0103 pentru comunitate, ajut\u00e2nd la \u00een\u021belegerea direc\u021biei de dezvoltare viitoare a acestui component.<br \/>\n<br \/>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/ignite-service-grid-perezagruzka\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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 resetare | ProHoster","description":"Pe 26 februarie, am organizat mitingul Apache Ignite GreenSource, unde au vorbit contribuitorii proiectului open source Apache Ignite.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}