{"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\/no\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2014 omstart","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>26. februar hadde vi meet-up om Apache Ignite GreenSource, hvor bidragsytere fra open source-prosjektet talte. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Et viktig arrangement for dette fellesskapet var ombyggingen av komponenten <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, som lar deg rulle ut brukertilpassede mikrotjenester direkte i Ignite-klyngen. Om denne krevende prosessen snakket <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Vyacheslav Daradur<\/a><\/noindex>, programvareingeni\u00f8r og bidragsyter til Apache Ignite i over to \u00e5r.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 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 \/>\nLa oss begynne med hva Apache Ignite egentlig er. Dette er en database som fungerer som et distribuert n\u00f8kkel\/verdi-lager med st\u00f8tte for SQL, transaksjoner og caching. I tillegg lar Ignite deg rulle ut tilpassede tjenester direkte i Ignite-klyngen. Utviklere f\u00e5r tilgang til alle verkt\u00f8yene som Ignite tilbyr \u2014 distribuerte datastrukturer, Messaging, Streaming, Compute og Data Grid. For eksempel, ved bruk av Data Grid forsvinner problemet med administrering av en separat infrastruktur for datalagring og de p\u00e5f\u00f8lgende kostnadene som f\u00f8lger med det.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVed \u00e5 bruke API Service Grid kan du distribuere en tjeneste ved enkelt \u00e5 spesifisere distribusjonsskjemaet i konfigurasjonen samt selve tjenesten.<\/p>\n<p>Normalt er distribusjonsskjemaet en indikasjon p\u00e5 hvor mange instanser som skal distribueres p\u00e5 klyngeknutene. Det finnes to typiske distribusjonsskjemaer. Den f\u00f8rste er Cluster Singleton: til enhver tid vil det garantert v\u00e6re \u00e9n instans av brukertjenesten tilgjengelig i klyngen. Den andre er Node Singleton: p\u00e5 hver knute i klyngen er det rullet ut \u00e9n instans av tjenesten. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBrukeren kan ogs\u00e5 spesifisere antallet instanser av tjenesten i hele klyngen og definere et predikat for \u00e5 filtrere relevante noder. I et slikt scenario vil Service Grid selv beregne optimal distribusjon for distribusjon av tjenester.<\/p>\n<p>I tillegg finnes det en funksjon som heter Affinity Service. Affinity er en funksjon som definerer forholdet mellom n\u00f8kler og partisjoner, samt forholdet mellom partisjoner og noder i topologien. Gjennom n\u00f8kkelen kan man bestemme primary-node der dataene lagres. P\u00e5 denne m\u00e5ten kan du assosiere din egen tjeneste med n\u00f8kkelen og cache-funksjonen. Ved endring av cache-funksjonen vil det skje en automatisk redesployering. Slik vil tjenesten alltid bli plassert n\u00e6r dataene den skal manipulere, og dermed redusere kostnadene ved tilgang til informasjon. Dette kan kalles en form for kolokalisert databehandling.<\/p>\n<p>N\u00e5 som vi har g\u00e5tt gjennom hva som er flott med Service Grid, vil vi fortelle om dens utviklingshistorie.<\/p>\n<h2>Hva var tidligere<\/h2>\n<p>\nDen forrige implementeringen av Service Grid var basert p\u00e5 et transaksjonsreplikerende systemcache kalt Ignite. Med ordet \"cache\" i Ignite refereres det til et lagringsystem. Det er alts\u00e5 ikke noe midlertidig, som man kanskje ville tro. Selv om cachen er replikert og hver node inneholder hele datasettet, har cachen en partisjonert fremstilling. Dette er relatert til optimalisering av lagring. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHva skjedde n\u00e5r en bruker \u00f8nsket \u00e5 deployere en tjeneste?<\/p>\n<ul>\n<li>Alle nodene i klyngen abonnerte p\u00e5 dataoppdateringer i lagringen gjennom den innebygde mekanismen Continuous Query.\n<\/li>\n<li>Initieringsnoden lagde en inngang i databasen under en read-committed transaksjon, som inneholdt konfigurasjonen av tjenesten, inkludert den serialiserte instansen.\n<\/li>\n<li>N\u00e5r koordinatoren mottok varselet om den nye posten, beregnet han distribusjonen basert p\u00e5 konfigurasjonen. Den mottatte objektet ble lagret tilbake i databasen.\n<\/li>\n<li>Hvis noden var med i distribusjonen, m\u00e5tte koordinatoren deployere den.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Hva var vi misforn\u00f8yde med<\/h2>\n<p>\nP\u00e5 et tidspunkt kom vi til den konklusjon at man ikke kan jobbe med tjenester p\u00e5 denne m\u00e5ten. Det var flere grunner til dette.<\/p>\n<p>Hvis det oppsto en feil under deployeringen, kunne man bare f\u00e5 vite om den fra loggene til den noden der alt skjedde. Det eksisterte bare asynkron deployering, s\u00e5 etter at brukeren fikk tilbake kontrollen fra deploy-metoden, var det n\u00f8dvendig med ekstra tid for \u00e5 starte tjenesten \u2013 og i l\u00f8pet av denne tiden kunne ikke brukeren administrere noe. For \u00e5 utvikle Service Grid videre, implementere nye funksjoner, tiltrekke nye brukere og gj\u00f8re livet enklere for alle, m\u00e5tte vi endre p\u00e5 noe.<\/p>\n<p>N\u00e5r vi designet det nye Service Grid, \u00f8nsket vi f\u00f8rst og fremst \u00e5 gi en garanti for synkron distribusjon: s\u00e5 snart brukeren f\u00e5r kontroll tilbake fra API, kan de umiddelbart bruke tjenestene. Vi \u00f8nsket ogs\u00e5 \u00e5 gi initiatoren muligheten til \u00e5 h\u00e5ndtere distribusjonsfeil.<\/p>\n<p>Videre \u00f8nsket vi \u00e5 lette implementeringen, spesielt \u00e5 unng\u00e5 transaksjoner og rebalansering. Selv om cache er replikert og det ikke er rebalansering, oppstod det problemer under st\u00f8rre distribusjoner med flere noder. N\u00e5r topologien endres, m\u00e5 nodene utveksle informasjon, og under en stor distribusjon kan disse dataene veie mye.<\/p>\n<p>N\u00e5r topologien var ustabil, m\u00e5tte koordinatoren beregne distribusjonen av tjenester p\u00e5 nytt. Generelt kan arbeidet med transaksjoner p\u00e5 en ustabil topologi f\u00f8re til vanskeligforutsigbare feil.<\/p>\n<h2>Problemer<\/h2>\n<p>\nHvilke globale endringer kommer uten samtidige problemer? Det f\u00f8rste av dem var endringen av topologi. Man m\u00e5 forst\u00e5 at n\u00e5r som helst, selv i l\u00f8pet av distribusjonen av tjenesten, kan en node bli med i eller forlate klyngen. Mer enn det, hvis en node blir med i klyngen under distribusjonen, m\u00e5 all informasjon om tjenestene overf\u00f8res konsekvent til den nye noden. Og dette gjelder ikke bare det som allerede er distribuert, men ogs\u00e5 n\u00e5v\u00e6rende og fremtidige distribusjoner.<\/p>\n<p>Dette er bare ett av problemene som kan samles i en egen liste:<\/p>\n<ul>\n<li>Hvordan distribuere statisk konfigurerte tjenester ved oppstart av noden?\n<\/li>\n<li>Hva skal man gj\u00f8re n\u00e5r noden forlater klyngen \u2013 hvis noden hadde vert tjenester?\n<\/li>\n<li>Hva skal man gj\u00f8re hvis koordinatoren har endret seg?\n<\/li>\n<li>Hva skal man gj\u00f8re hvis klienten er reconnected til klyngen?\n<\/li>\n<li>M\u00e5 vi h\u00e5ndtere foresp\u00f8rslene for aktivering\/deaktivering, og hvordan?\n<\/li>\n<li>Hva hvis cache destruksjonen ble kalt, men vi har tjenester som er avhengige av den?\n<\/li>\n<\/ul>\n<p>\nOg dette er langt ifra alt. <\/p>\n<h2>Solution<\/h2>\n<p>\nSom m\u00e5l valgte vi en Event Driven tiln\u00e6rming med implementering av prosesskommunikasjon ved hjelp av meldinger. I Ignite er allerede to komponenter implementert, som lar noder sende meldinger til hverandre \u2013 communication-spi og discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommunication-spi gj\u00f8r det mulig for noder \u00e5 kommunisere direkte og sende meldinger. Det er godt egnet for \u00e5 overf\u00f8re store datamengder. Discovery-spi gj\u00f8r det mulig \u00e5 sende en melding til alle noder i klyngen. I den standard implementeringen gj\u00f8res dette ved hjelp av en \"ring\"-topologi. Det finnes ogs\u00e5 integrasjon med Zookeeper; i s\u00e5 fall brukes en \"stjerne\"-topologi. Det er ogs\u00e5 viktig \u00e5 merke seg at discovery-spi gir garantier for at meldingen n\u00f8yaktig vil bli levert i riktig rekkef\u00f8lge til alle noder. <\/p>\n<p>La oss se p\u00e5 deploy-protokollen. Alle brukerforesp\u00f8rselene om deploy og undeploy sendes via discovery-spi. Dette gir f\u00f8lgende <i>garantier<\/i>:<\/p>\n<ul>\n<li>Foresp\u00f8rselen vil bli mottatt av alle nodene i klyngen. Dette vil tillate videre behandling av foresp\u00f8rselen ved endring av koordinator. Det betyr ogs\u00e5 at hver node vil ha alle n\u00f8dvendige metadata for \u00e9n melding, som tjenestekonfigurasjon og dens serialiserte instans.\n<\/li>\n<li>Den strenge rekkef\u00f8lgen p\u00e5 leveringen av meldinger gj\u00f8r det mulig \u00e5 l\u00f8se konflikter mellom konfigurasjoner og konkurrerende foresp\u00f8rsel.\n<\/li>\n<li>Siden en nodes inntreden i topologien ogs\u00e5 behandles via discovery-spi, vil den nye noden motta all n\u00f8dvendig informasjon for \u00e5 arbeide med tjenestene.\n<\/li>\n<\/ul>\n<p>\nN\u00e5r en foresp\u00f8rsel mottas, validerer nodene i klyngen den og danner oppgaver for behandling. Disse oppgavene legges i en k\u00f8 og prosesseres deretter i en annen tr\u00e5d av en egen worker. Dette er implementert p\u00e5 denne m\u00e5ten fordi deploy kan ta betydelig tid, og det er uakseptabelt \u00e5 forsinke den dyre discovery-str\u00f8mmen.<\/p>\n<p>Alle foresp\u00f8rslene fra k\u00f8en behandles av deployement-manageren. Den har en spesifikk worker som henter oppgaven fra denne k\u00f8en og initialiserer den for \u00e5 starte distribusjonen. Etter dette skjer f\u00f8lgende:<\/p>\n<ol>\n<li>Hver node beregner selv fordelingen takket v\u00e6re den nye deterministiske tildelingsfunksjonen.\n<\/li>\n<li>Nodene danner en melding med resultatene av deployen og sender den til koordinatoren.\n<\/li>\n<li>Koordinatoren aggregerer alle meldingene og danner resultatet av hele deploy-prosessen, som sendes via discovery-spi til alle nodene i klyngen.\n<\/li>\n<li>N\u00e5r resultatet mottas, avsluttes deploy-prosessen, hvoretter oppgaven fjernes fra k\u00f8en.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2014 omstart\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ny hendelsesdrevet design: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Hvis det oppstod en feil under distribusjonen, vil noden straks inkludere denne feilen i meldingen som sendes til koordinatoren. Etter aggregasjonen av meldingene vil koordinatoren ha informasjon om alle feilene under distribusjonen og sende denne meldingen via discovery-spi. Feilinformasjonen vil v\u00e6re tilgjengelig p\u00e5 hvilken som helst node i klyngen. <\/p>\n<p>Alle viktige hendelser i Service Grid behandles i henhold til denne arbeidsalgoritmen. For eksempel er endring av topologi ogs\u00e5 en melding via discovery-spi. Generelt, sammenlignet med hva som var, har protokollen blitt ganske lettvektig og p\u00e5litelig. S\u00e5 mye at den kan h\u00e5ndtere enhver situasjon under distribusjonen. <\/p>\n<h2>Hva skjer videre<\/h2>\n<p>\nN\u00e5 om planene. Enhver st\u00f8rre oppdatering i Ignite-prosjektet utf\u00f8res som en initiativ for forbedring av Ignite, kjent som IEP. Redesignen av Service Grid har ogs\u00e5 et IEP \u2014 <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 det morsomme navnet \u00abBytte av olje i Service Grid\u00bb. Men i realiteten byttet vi ikke olje i motoren, men hele motoren. <\/p>\n<p>Oppgavene i IEP er delt opp i 2 faser. Den f\u00f8rste fasen er en stor fase som inneb\u00e6rer omarbeiding av distribusjonsprotokollen. Den er allerede integrert i masteren, og du kan pr\u00f8ve det nye Service Grid som vil v\u00e6re tilgjengelig i versjon 2.8. Den andre fasen inkluderer mange andre oppgaver:<\/p>\n<ul>\n<li>Hot redeploy\n<\/li>\n<li>Versjonering av tjenester\n<\/li>\n<li>\u00d8kt feilresistens\n<\/li>\n<li>Tynn klient\n<\/li>\n<li>Verkt\u00f8y for overv\u00e5kning og m\u00e5ling av ulike metrikker\n<\/li>\n<\/ul>\n<p>\nTil slutt kan vi anbefale Service Grid for bygging av feiltolerante systemer med h\u00f8y tilgjengelighet. Vi inviterer deg ogs\u00e5 til \u00e5 bli med oss i <noindex><a rel=\"nofollow\" href=\"mailto:dev@ignite.apache.org\">dev-list<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"mailto:user@ignite.apache.org\">user-list<\/a><\/noindex> for \u00e5 dele erfaringene dine. Din erfaring er virkelig viktig for fellesskapet; den vil hjelpe med \u00e5 forst\u00e5 hva vi skal gj\u00f8re videre og hvordan vi skal utvikle komponenten i fremtiden.<br \/>\n<br \/>Kilde: <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\/no\/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=\"nn_NO\" \/>\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\/no\/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 ny start | ProHoster","description":"26. februar holdt vi et meetup om Apache Ignite GreenSource, hvor bidragsytere fra open source-prosjektet Apache Ignite deltok.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\/no\/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\/no\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}