{"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\/sv\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2013 omstart","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Den 26 februari h\u00f6ll vi meeten Apache Ignite GreenSource, d\u00e4r bidragsgivare fr\u00e5n open source-projektet deltog. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. En viktig h\u00e4ndelse i detta samh\u00e4lles liv var omstruktureringen av komponenten <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, som g\u00f6r det m\u00f6jligt att distribuera anv\u00e4ndarspecifika mikrotj\u00e4nster direkt i Ignite-klustret. Om denna komplexa process ber\u00e4ttade <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Vyacheslav Daradur<\/a><\/noindex>, mjukvaruingenj\u00f6r och bidragsgivare till Apache Ignite i mer \u00e4n tv\u00e5 \u00e5r.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" 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 \/>\nL\u00e5t oss b\u00f6rja med vad Apache Ignite egentligen \u00e4r. Det \u00e4r en databas som utg\u00f6r ett distribuerat Key\/Value-lager med st\u00f6d f\u00f6r SQL, transaktioner och caching. Dessutom g\u00f6r Ignite det m\u00f6jligt att distribuera anv\u00e4ndarspecifika tj\u00e4nster direkt i Ignite-klustret. Utvecklare f\u00e5r tillg\u00e5ng till alla verktyg som Ignite erbjuder \u2014 distribuerade datatyper, Messaging, Streaming, Compute och Data Grid. Till exempel, vid anv\u00e4ndning av Data Grid f\u00f6rsvinner problemet med att administrera en separat infrastruktur f\u00f6r datalagring och f\u00f6ljaktligen de kostnader som f\u00f6ljer med detta.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGenom att anv\u00e4nda API:et f\u00f6r Service Grid kan du distribuera en tj\u00e4nst genom att enkelt ange distributionsschemat i konfigurationen och d\u00e4rmed sj\u00e4lva tj\u00e4nsten.<\/p>\n<p>Vanligtvis \u00e4r distributionsschemat en angivelse av antalet instanser som ska distribueras p\u00e5 klustrets noder. Det finns tv\u00e5 typiska distributionsscheman. Det f\u00f6rsta \u00e4r Cluster Singleton: vid varje given tidpunkt kommer en instans av den anv\u00e4ndarspecifika tj\u00e4nsten garanteras vara tillg\u00e4nglig i klustret. Det andra \u00e4r Node Singleton: varje nod i klustret har en instans av tj\u00e4nsten distribuerad. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnv\u00e4ndaren kan ocks\u00e5 ange antalet instanser av tj\u00e4nsten i hela klustret och definiera ett predikat f\u00f6r att filtrera l\u00e4mpliga noder. I ett s\u00e5dant scenario ber\u00e4knar Service Grid sj\u00e4lv den optimala distributionen f\u00f6r distribuerade tj\u00e4nster.<\/p>\n<p>Dessutom finns det en funktion som kallas Affinity Service. Affinity \u00e4r en funktion som definierar kopplingen mellan nycklar och partitioner samt kopplingen mellan partitioner och noder i topologin. Genom nyckeln kan den prim\u00e4ra noden fastst\u00e4llas d\u00e4r data lagras. P\u00e5 s\u00e5 s\u00e4tt kan din egen tj\u00e4nst kopplas till nyckeln och cachen f\u00f6r affinity-funktionen. Vid en f\u00f6r\u00e4ndring av affinity-funktionen kommer en automatisk omdeployeringsprocess att ske. S\u00e5ledes kommer tj\u00e4nsten alltid att placeras n\u00e4ra den data den ska manipulera, och d\u00e4rmed minska overheadkostnaderna f\u00f6r att f\u00e5 tillg\u00e5ng till information. Denna typ av schema kan kallas en form av kolokaliserade ber\u00e4kningar.<\/p>\n<p>Nu n\u00e4r vi har diskuterat vad som \u00e4r f\u00f6rdelarna med Service Grid, l\u00e5t oss prata om dess utvecklingshistoria.<\/p>\n<h2>Vad som var tidigare<\/h2>\n<p>\nDen tidigare implementeringen av Service Grid baserades p\u00e5 en transaktionell replikerad systemcache Ignite. Med \"cache\" avses i Ignite ett datalager. Det \u00e4r allts\u00e5 inte n\u00e5got tempor\u00e4rt, som man kanske skulle kunna tro. \u00c4ven om cachen \u00e4r replikerad och varje nod inneh\u00e5ller hela datam\u00e4ngden, har cachen en partitionerad representation. Detta \u00e4r kopplat till optimering av lagringsl\u00f6sningar. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVad h\u00e4nde n\u00e4r en anv\u00e4ndare ville distribuera en tj\u00e4nst?<\/p>\n<ul>\n<li>Alla noder i klustret prenumererade p\u00e5 uppdateringar av data i lagret med hj\u00e4lp av den inbyggda mekanismen f\u00f6r Continuous Query.\n<\/li>\n<li>Initiatornoden gjorde en databaspost under en read-committed transaktion, som inneh\u00f6ll tj\u00e4nstens konfiguration, inklusive en serialiserad instans.\n<\/li>\n<li>Vid mottagandet av en ny postber\u00e4kning fr\u00e5n koordinat\u00f6ren ber\u00e4knades distributionen utifr\u00e5n konfigurationen. Den erh\u00e5llna objektet skrivs tillbaka till databasen.\n<\/li>\n<li>Om noden ingick i distributionen, hade koordinat\u00f6ren ansvar f\u00f6r att distribuera den.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Vad som inte tillfredsst\u00e4llde oss<\/h2>\n<p>\nVid en viss tidpunkt kom vi fram till att det inte gick att arbeta med tj\u00e4nster p\u00e5 det h\u00e4r s\u00e4ttet. Det fanns flera anledningar.<\/p>\n<p>Om det uppstod n\u00e5got fel under distributionen kunde man endast f\u00e5 information om det fr\u00e5n loggarna p\u00e5 den nod d\u00e4r h\u00e4ndelsen intr\u00e4ffade. Det fanns bara asynkron distribution, s\u00e5 efter att kontrollen \u00e5terst\u00e4llts till anv\u00e4ndaren fr\u00e5n distributionsmetoden beh\u00f6vdes viss extra tid f\u00f6r att starta tj\u00e4nsten \u2014 under denna tid kunde anv\u00e4ndaren inte hantera n\u00e5got. F\u00f6r att vidareutveckla Service Grid, skapa nya funktioner, locka nya anv\u00e4ndare och g\u00f6ra livet enklare f\u00f6r alla var f\u00f6r\u00e4ndring n\u00f6dv\u00e4ndig.<\/p>\n<p>Vid utformning av det nya Service Grid ville vi f\u00f6rst och fr\u00e4mst erbjuda en garanti f\u00f6r synkron distribution: s\u00e5 snart anv\u00e4ndaren f\u00e5r kontrollen tillbaka fr\u00e5n API:et, kan hen omedelbart anv\u00e4nda tj\u00e4nsterna. Vi ville ocks\u00e5 ge initiativtagaren m\u00f6jlighet att hantera distributionsfel.<\/p>\n<p>Dessutom ville vi underl\u00e4tta implementeringen, n\u00e4mligen avveckla transaktioner och ombalansering. Trots att cachen \u00e4r replikerad och det inte finns n\u00e5gon balans, uppstod problem under stora distributioner med m\u00e5nga noder. Vid f\u00f6r\u00e4ndringar i topologin m\u00e5ste noderna utbyta information, och vid stora distributioner kan dessa uppgifter v\u00e4ga mycket.<\/p>\n<p>N\u00e4r topologin var instabil beh\u00f6vde koordinatoren omber\u00e4kna f\u00f6rdelningen av tj\u00e4nsterna. Och generellt sett, n\u00e4r man m\u00e5ste arbeta med transaktioner p\u00e5 en instabil topologi, kan det leda till sv\u00e5rf\u00f6ruts\u00e4gbara fel.<\/p>\n<h2>Problem<\/h2>\n<p>\nVilka globala f\u00f6r\u00e4ndringar skulle det vara utan medf\u00f6ljande problem? Den f\u00f6rsta av dessa var f\u00f6r\u00e4ndringen av topologin. Man m\u00e5ste f\u00f6rst\u00e5 att i varje \u00f6gonblick, \u00e4ven under distributionen av en tj\u00e4nst, kan en nod g\u00e5 med i klustret eller l\u00e4mna det. Dessutom, om en nod g\u00e5r med i klustret under distributionen, m\u00e5ste all information om tj\u00e4nsterna \u00f6verf\u00f6ras konsekvent till den nya noden. Detta handlar inte bara om det som redan har distribuerats, utan ocks\u00e5 om aktuella och framtida distributioner.<\/p>\n<p>Detta \u00e4r bara ett av problemen som kan samlas i en separat lista:<\/p>\n<ul>\n<li>Hur distribuerar man statiskt konfigurerade tj\u00e4nster n\u00e4r en nod startar?\n<\/li>\n<li>Vad ska man g\u00f6ra om en nod l\u00e4mnar klustret och den hade hostat tj\u00e4nster?\n<\/li>\n<li>Vad ska man g\u00f6ra om koordinatoren har bytts?\n<\/li>\n<li>Vad ska man g\u00f6ra om klienten kopplar om till klustret?\n<\/li>\n<li>M\u00e5ste aktiverings-\/deaktiveringsf\u00f6rfr\u00e5gningar bearbetas och hur?\n<\/li>\n<li>Och vad h\u00e4nder om destruktorn f\u00f6r cachen anropades, men vi har affinitets-tj\u00e4nster kopplade till den?\n<\/li>\n<\/ul>\n<p>\nOch detta \u00e4r l\u00e5ngt ifr\u00e5n allt. <\/p>\n<h2>L\u00f6sning<\/h2>\n<p>\nSom m\u00e5l valde vi en Event Driven-ansats med implementering av kommunikation mellan processer via meddelanden. I Ignite finns redan tv\u00e5 komponenter som m\u00f6jligg\u00f6r att noder skickar meddelanden mellan varandra - communication-spi och discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommunication-spi m\u00f6jligg\u00f6r direkt kommunikation och meddelande\u00f6verf\u00f6ring mellan noder. Det \u00e4r v\u00e4l l\u00e4mpat f\u00f6r \u00f6verf\u00f6ring av stora datam\u00e4ngder. Discovery-spi till\u00e5ter att skicka ett meddelande till alla noder i klustret. I den standardimplementeringen g\u00f6rs detta enligt \"ringtopologi\". Det finns ocks\u00e5 en integration med Zookeeper, d\u00e4r \"stj\u00e4rntopologi\" anv\u00e4nds. En viktig punkt att n\u00e4mna \u00e4r att discovery-spi garanterar att meddelandet kommer att levereras i r\u00e4tt ordning till alla noder. <\/p>\n<p>L\u00e5t oss \u00f6verv\u00e4ga distributionsprotokollet. Alla anv\u00e4ndarf\u00f6rfr\u00e5gningar om distribution och borttagning skickas via discovery-spi. Detta ger f\u00f6ljande <i>garantier<\/i>:<\/p>\n<ul>\n<li>F\u00f6rfr\u00e5gan kommer att mottas av alla noder i klustret. Detta m\u00f6jligg\u00f6r fortsatt behandling av f\u00f6rfr\u00e5gan vid byte av koordinator. Det betyder ocks\u00e5 att varje nod, vid ett meddelande, f\u00e5r all n\u00f6dv\u00e4ndig metadata, som tj\u00e4nsteconfig och dess serialiserade instans.\n<\/li>\n<li>Strikt ordning f\u00f6r meddelandeleverans m\u00f6jligg\u00f6r l\u00f6sning av konfigurationskonflikter och konkurrerande f\u00f6rfr\u00e5gningar.\n<\/li>\n<li>Eftersom noder som g\u00e5r in i topologin ocks\u00e5 hanteras via discovery-spi, f\u00e5r den nya noden all n\u00f6dv\u00e4ndig information f\u00f6r att arbeta med tj\u00e4nster.\n<\/li>\n<\/ul>\n<p>\nVid mottagning av en f\u00f6rfr\u00e5gan validerar noderna i klustret den och skapar uppgifter f\u00f6r bearbetning. Dessa uppgifter placeras i en k\u00f6 och bearbetas sedan i en annan tr\u00e5d av en separat arbetare. Detta \u00e4r implementerat p\u00e5 detta s\u00e4tt eftersom distribution kan ta betydande tid och f\u00f6rsena den dyra discovery-fl\u00f6det \u00e4r oacceptabelt.<\/p>\n<p>Alla f\u00f6rfr\u00e5gningar fr\u00e5n k\u00f6n bearbetas av distributionshanteraren. Den har en specialiserad arbetare som h\u00e4mtar uppgiften fr\u00e5n denna k\u00f6 och initierar den f\u00f6r att p\u00e5b\u00f6rja distributionen. Efter detta sker f\u00f6ljande \u00e5tg\u00e4rder:<\/p>\n<ol>\n<li>Varje nod ber\u00e4knar sj\u00e4lvst\u00e4ndigt f\u00f6rdelningen baserat p\u00e5 den nya deterministiska tilldelningsfunktionen.\n<\/li>\n<li>Noderna formar ett meddelande med resultaten av distributionen och skickar det till koordinatorn.\n<\/li>\n<li>Koordinatorn aggregerar alla meddelanden och formar resultatet av hela distributionsprocessen, vilket skickas via discovery-spi till alla noder i klustret.\n<\/li>\n<li>Vid mottagning av resultatet avslutas distributionsprocessen, varefter uppgiften tas bort fr\u00e5n k\u00f6n.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2013 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ny event-driven design: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Om ett fel intr\u00e4ffar vid distributionen, inkluderar noden omedelbart detta fel i meddelandet som skickas till koordinatorn. Efter aggregationen av meddelanden kommer koordinatorn att ha information om alla fel under distributionen och skicka detta meddelande via discovery-spi. Information om felen kommer att vara tillg\u00e4nglig p\u00e5 vilken nod som helst i klustret. <\/p>\n<p>Alla viktiga h\u00e4ndelser i Service Grid bearbetas enligt denna algoritm. Till exempel, en toppologif\u00f6r\u00e4ndring \u00e4r ocks\u00e5 ett meddelande via discovery-spi. Generellt sett, j\u00e4mf\u00f6rt med vad som fanns tidigare, har protokollet blivit tillr\u00e4ckligt l\u00e4ttviktigt och p\u00e5litligt. Tillr\u00e4ckligt f\u00f6r att hantera alla situationer under distributionen. <\/p>\n<h2>Vad som kommer h\u00e4rn\u00e4st<\/h2>\n<p>\nNu om planerna. Varje st\u00f6rre f\u00f6rb\u00e4ttring i projektet Ignite genomf\u00f6rs som en insats f\u00f6r att f\u00f6rb\u00e4ttra Ignite, s\u00e5 kallad IEP. Redesignen av Service Grid har ocks\u00e5 en 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> med ett sk\u00e4mtsamt namn \"Byte av olja i Service Grid\". Men i sj\u00e4lva verket har vi inte bara bytt olja i motorn, utan hela motorn. <\/p>\n<p>Vi har delat upp uppgifterna i IEP i tv\u00e5 faser. F\u00f6rsta fasen \u00e4r en stor fas som g\u00e5r ut p\u00e5 att omarbeta distributionsprotokollet. Den har redan slagits samman med huvudgrenen, s\u00e5 man kan prova den nya Service Grid som kommer i version 2.8. Den andra fasen inkluderar m\u00e5nga andra uppgifter:<\/p>\n<ul>\n<li>Hot-swap-distribution\n<\/li>\n<li>Versionshantering av tj\u00e4nster\n<\/li>\n<li>\u00d6kad felresiliens\n<\/li>\n<li>Tunn klient\n<\/li>\n<li>\u00d6vervakningsverktyg och m\u00e4tning av olika metrikser\n<\/li>\n<\/ul>\n<p>\nAvslutningsvis kan vi rekommendera Service Grid f\u00f6r att bygga felresistenta system med h\u00f6g tillg\u00e4nglighet. Vi bjuder ocks\u00e5 in er till <noindex><a rel=\"nofollow\" href=\"mailto:dev@ignite.apache.org\">dev-list<\/a><\/noindex> och <noindex><a rel=\"nofollow\" href=\"mailto:user@ignite.apache.org\">user-list<\/a><\/noindex> f\u00f6r att dela med er av er erfarenhet. Er erfarenhet \u00e4r verkligen viktig f\u00f6r gemenskapen, den hj\u00e4lper till att f\u00f6rst\u00e5 i vilken riktning vi ska g\u00e5 vidare och hur vi kan utveckla komponenten fram\u00f6ver.<br \/>\n<br \/>K\u00e4lla: <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.5 - 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\/sv\/blog\/administrirovanie\/ignite-service-grid-perezagruzka\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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 omstart | ProHoster","description":"Den 26 februari h\u00f6ll vi en meetup om Apache Ignite GreenSource, d\u00e4r bidragsgivare till open-source-projektet Apache Ignite deltog.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}