{"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\/nl\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","title":{"rendered":"Ignite Service Grid \u2014 herstart","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Op 26 februari organiseerden we de Apache Ignite GreenSource meetup, waar bijdragers van het open source project spraken. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>Een belangrijk evenement in het leven van deze gemeenschap was de herstructurering van de component. <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/features\/servicegrid.html\">Ignite Service Grid<\/a><\/noindex>, die het mogelijk maakt om aangepaste microservices rechtstreeks in het Ignite-cluster te implementeren. Over dit uitdagende proces sprak tijdens de meetup. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/daradurvs\/\">Vyacheslav Daradur<\/a><\/noindex>, software engineer en al meer dan twee jaar bijdrager aan Apache Ignite.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" 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 \/>\nLaten we beginnen met te verduidelijken wat Apache Ignite eigenlijk is. Het is een database die een gedistribueerde Key\/Value-opslag biedt met ondersteuning voor SQL, transacties en caching. Bovendien maakt Ignite het mogelijk om aangepaste services rechtstreeks in het Ignite-cluster te implementeren. Ontwikkelaars hebben toegang tot alle tools die Ignite biedt: gedistribueerde datastructuren, Messaging, Streaming, Compute en Data Grid. Bijvoorbeeld, door gebruik te maken van Data Grid vervalt het probleem van het beheren van een aparte infrastructuur voor data-opslag, en de daarmee samenhangende overheadkosten.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" src=\"\/wp-content\/uploads\/2019\/04\/e3259ea6113d1c6549da556ec365b394.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMet de Service Grid API kan een service worden gedeployed door eenvoudig de implementatieschema en de service zelf in de configuratie op te geven.<\/p>\n<p>Gewoonlijk is een implementatieschema een specificatie van het aantal instanties dat op de knooppunten van het cluster moet worden gedeployed. Er zijn twee typische implementatieschema's. De eerste is Cluster Singleton: op elk moment is er gegarandeerd \u00e9\u00e9n exemplaar van de gebruikersservice beschikbaar in het cluster. De tweede is Node Singleton: op elk knooppunt van het cluster is er \u00e9\u00e9n exemplaar van de service ge\u00efmplementeerd. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" src=\"\/wp-content\/uploads\/2019\/04\/645b2c11a95d4ad578e3c14d44894e30.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe gebruiker kan ook het aantal instanties van de service in het hele cluster opgeven en een predicaat voor het filteren van geschikte knooppunten bepalen. In dit scenario berekent de Service Grid zelf de optimale verdeling voor het implementeren van de services.<\/p>\n<p>Bovendien is er een functie genaamd Affinity Service. Affinity is een functie die de relatie tussen sleutels en partities definieert, evenals de relatie tussen partities en knooppunten in de topologie. Aan de hand van een sleutel kan het primaire knooppunt worden bepaald waarop de gegevens zijn opgeslagen. Zo kan je je eigen service associ\u00ebren met een sleutel en de cache van de affinity-functie. In het geval van een wijziging in de affinity-functie zal er automatisch een redeployment plaatsvinden. Hierdoor zal de service altijd dicht bij de gegevens worden geplaatst waarmee hij moet werken, wat de overhead van het toegang tot informatie vermindert. Deze opzet kan worden aangeduid als een soort co-locatie berekeningen.<\/p>\n<p>Nu we de voordelen van de Service Grid hebben besproken, vertellen we over de ontwikkeling ervan.<\/p>\n<h2>Wat was er eerder<\/h2>\n<p>\nDe vorige implementatie van de Service Grid was gebaseerd op een transactionele gerepliceerde systeemcache, Ignite. Met het woord \"cache\" wordt in Ignite een opslag bedoeld. Dit is dus niet iets tijdelijk, zoals je zou kunnen denken. Hoewel de cache gerepliceerd is en elke knoop de volledige dataset bevat, heeft de cache intern een gepartitioneerde weergave. Dit is gerelateerd aan de optimalisatie van opslag. <\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" src=\"\/wp-content\/uploads\/2019\/04\/ce452b6f16aa7b3207648eed45fa6576.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWat gebeurde er wanneer een gebruiker een service wilde deployen?<\/p>\n<ul>\n<li>Alle knooppunten in het cluster abonneerden zich op gegevensupdates in de opslag met behulp van het ingebouwde mechanisme Continuous Query.\n<\/li>\n<li>De initi\u00ebrende knoop maakte onder een read-committed transactie een record aan in de database dat de configuratie van de service bevatte, inclusief de geserialiseerde instantie.\n<\/li>\n<li>Bij het ontvangen van een melding over een nieuwe invoer berekende de co\u00f6rdinator de distributie op basis van de configuratie. Het verkregen object werd teruggeschreven naar de database.\n<\/li>\n<li>Als een knoop in de distributie werd opgenomen, moest de co\u00f6rdinator deze deployen.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Wat was ons probleem<\/h2>\n<p>\nOp een gegeven moment kwamen we tot de conclusie dat het werken met services op deze manier niet kon. Er waren verschillende redenen.<\/p>\n<p>Als er tijdens de deployment een fout optrad, kon je daar alleen iets over te weten komen via de logs van het knoop waar alles zich had voorgedaan. Er bestond alleen asynchrone deployment, zodat na het teruggeven van de controle aan de gebruiker van de deploy-methode er extra tijd nodig was om de service te starten - en in die tijd kon de gebruiker niets beheren. Om de Service Grid verder te ontwikkelen, nieuwe functies uit te rollen, nieuwe gebruikers aan te trekken en het voor iedereen makkelijker te maken, moesten we iets veranderen.<\/p>\n<p>Bij het ontwerpen van het nieuwe Service Grid wilden we in de eerste plaats de garantie van een synchrone deployment bieden: zodra de gebruiker de controle van de API terugkreeg, kon hij onmiddellijk gebruikmaken van de services. We wilden ook de initiator de mogelijkheid geven om errors van de deployment te verwerken.<\/p>\n<p>Bovendien wilden we de implementatie vergemakkelijken, met name door transacties en herbalancering te vermijden. Ondanks dat de cache gerepliceerd is en er geen balancering is, traden er problemen op tijdens grote deployments met meerdere knooppunten. Bij het wijzigen van de topologie moeten de knooppunten informatie uitwisselen, en bij een grote deployment kunnen deze gegevens heel veel wegen.<\/p>\n<p>Wanneer de topologie onstabiel was, moest de co\u00f6rdinator de verdeling van de services opnieuw berekenen. En in het algemeen, wanneer je met transacties op een onstabiele topologie werkt, kan dit leiden tot moeilijk voorspelbare fouten.<\/p>\n<h2>Problemen<\/h2>\n<p>\nWat zijn grote veranderingen zonder bijbehorende problemen? De eerste was de wijziging van de topologie. Het moet duidelijk zijn dat op elk moment, zelfs tijdens de deployment van een service, een knooppunt het cluster kan binnenkomen of verlaten. Bovendien, als een knooppunt tijdens de deployment het cluster binnengaat, moet alle informatie over de services consistent naar het nieuwe knooppunt worden overgedragen. Het gaat niet alleen om wat al is uitgerold, maar ook om huidige en toekomstige deployments.<\/p>\n<p>Dit is slechts \u00e9\u00e9n van de problemen die we in een aparte lijst kunnen verzamelen:<\/p>\n<ul>\n<li>Hoe implementeer je statisch geconfigureerde services bij het opstarten van een knooppunt?\n<\/li>\n<li>Wat te doen als een knooppunt het cluster verlaat \u2013 hoe zit het als het knooppunt services hostte?\n<\/li>\n<li>Wat te doen als de co\u00f6rdinator verandert?\n<\/li>\n<li>Wat te doen als een client opnieuw verbinding maakt met het cluster?\n<\/li>\n<li>Moeten we de aanvragen voor activatie\/deactivatie verwerken en hoe?\n<\/li>\n<li>En wat als de destructie van de cache wordt aangeroepen, terwijl we afhankelijke affinity services hebben?\n<\/li>\n<\/ul>\n<p>\nEn dit is lang niet alles. <\/p>\n<h2>Oplossing<\/h2>\n<p>\nAls doel hebben we gekozen voor de Event Driven aanpak met implementatie van procescommunicatie via berichten. In Ignite zijn al twee componenten ge\u00efmplementeerd die knooppunten in staat stellen om berichten tussen elkaar te verzenden: communication-spi en discovery-spi.<\/p>\n<p><img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" src=\"\/wp-content\/uploads\/2019\/04\/b95a4951ae4e04a67581a44921e88bcc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommunication-spi stelt knooppunten in staat om rechtstreeks met elkaar te communiceren en berichten te verzenden. Het is goed geschikt voor het verzenden van grote hoeveelheden gegevens. Discovery-spi maakt het mogelijk om een bericht naar alle knooppunten in het cluster te sturen. In de standaardimplementatie gebeurt dit via een \"ring\" topologie. Daarnaast is er integratie met Zookeeper, waarbij een \"ster\" topologie wordt gebruikt. Een belangrijk punt om op te merken is dat discovery-spi garanties biedt dat het bericht in de juiste volgorde aan alle knooppunten zal worden afgeleverd. <\/p>\n<p>Laten we het deploymentprotocol bekijken. Alle gebruikersverzoeken voor deployment en undeployment worden via discovery-spi verzonden. Dit biedt de volgende <i>garanties<\/i>:<\/p>\n<ul>\n<li>Het verzoek zal door alle knooppunten in het cluster worden ontvangen. Dit maakt het mogelijk om de verwerking van het verzoek voort te zetten bij een verandering van co\u00f6rdinator. Dit betekent ook dat elk knooppunt alle noodzakelijke metadata voor dat ene bericht zal ontvangen, zoals de serviceconfiguratie en zijn geserialiseerde instantie.\n<\/li>\n<li>De strikte volgorde van berichtaflevering maakt het mogelijk om conflicten tussen configuraties en concurrerende verzoeken op te lossen.\n<\/li>\n<li>Aangezien de toegang van een knooppunt tot de topologie ook via discovery-spi wordt afgehandeld, ontvangt het nieuwe knooppunt alle gegevens die nodig zijn om met de services te werken.\n<\/li>\n<\/ul>\n<p>\nBij het ontvangen van een verzoek valideren de knooppunten in het cluster het en cre\u00ebren ze taken voor verwerking. Deze taken worden in een wachtrij geplaatst en later in een andere thread door een aparte worker verwerkt. Dit is zo ge\u00efmplementeerd omdat deployment aanzienlijke tijd kan kosten en het uitstellen van de dure discovery-stroom onaanvaardbaar is.<\/p>\n<p>Alle verzoeken uit de wachtrij worden verwerkt door de deploymentmanager. Deze heeft een speciale worker die een taak uit de wachtrij haalt en deze initialiseerd om de implementatie te starten. Daarna worden de volgende acties uitgevoerd:<\/p>\n<ol>\n<li>Elk knooppunt berekent zelfstandig de verdeling op basis van een nieuwe deterministische toewijzingsfunctie.\n<\/li>\n<li>Knooppunten vormen een bericht met de resultaten van de implementatie en sturen dit naar de co\u00f6rdinator.\n<\/li>\n<li>De co\u00f6rdinator aggregeert alle berichten en vormt het resultaat van het gehele deploymentproces, dat via discovery-spi aan alle knooppunten in het cluster wordt verzonden.\n<\/li>\n<li>Bij het ontvangen van het resultaat wordt het deploymentproces voltooid, waarna de taak uit de wachtrij wordt verwijderd.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Ignite Service Grid \u2014 herstart\" src=\"\/wp-content\/uploads\/2019\/04\/5f16bfae25e00c2e125be8fedb7cccb7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nieuw event-driven ontwerp: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java<\/i><\/p>\n<p>Als er tijdens de uitrol een fout optreedt, voegt de node deze fout onmiddellijk toe aan het bericht dat naar de co\u00f6rdinator wordt gestuurd. Na aggregatie van de berichten heeft de co\u00f6rdinator informatie over alle fouten tijdens de deployment en stuurt dit bericht via discovery-spi. Informatie over fouten is beschikbaar op elke node in het cluster. <\/p>\n<p>Volgens dit werkalgoritme worden alle belangrijke gebeurtenissen in de Service Grid verwerkt. Bijvoorbeeld, een wijziging in de topologie is ook een bericht via discovery-spi. Over het algemeen, in vergelijking met wat er was, is het protocol vrij lichtgewicht en betrouwbaar. Zoveel dat het in staat is om elke situatie tijdens de uitrol af te handelen. <\/p>\n<h2>Wat gebeurt er daarna<\/h2>\n<p>\nLaten we het nu over de plannen hebben. Elke grote verbetering in het Ignite-project wordt uitgevoerd als een initiatief voor verbetering van Ignite, het zogenaamde IEP. Ook de herontwerp van de Service Grid heeft een IEP \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/IGNITE\/IEP-17%3A+Oil+Change+in+Service+Grid\">IEP \u211617<\/a><\/noindex> met de grappige titel \u2018Vervanging van olie in de Service Grid\u2019. Maar in werkelijkheid hebben we niet de olie in de motor vervangen, maar de motor in zijn geheel. <\/p>\n<p>We hebben de taken in het IEP verdeeld in 2 fasen. De eerste is een grote fase, die bestaat uit het herontwerpen van het deploymentprotocol. Dit is al samengevoegd met de master, je kunt de nieuwe Service Grid proberen, die in versie 2.8 zal verschijnen. De tweede fase omvat veel andere taken:<\/p>\n<ul>\n<li>Hot redeploy\n<\/li>\n<li>Versiebeheer van services\n<\/li>\n<li>Verhoging van de fouttolerantie\n<\/li>\n<li>Dunne client\n<\/li>\n<li>Monitoringtools en het tellen van verschillende metrics\n<\/li>\n<\/ul>\n<p>\nTot slot raden we je aan om de Service Grid te gebruiken voor het opbouwen van fouttolerante systemen met hoge beschikbaarheid. We nodigen je ook uit voor onze <noindex><a rel=\"nofollow\" href=\"mailto:dev@ignite.apache.org\">dev-list<\/a><\/noindex> en <noindex><a rel=\"nofollow\" href=\"mailto:user@ignite.apache.org\">user-list<\/a><\/noindex> om je ervaring te delen. Jouw ervaring is echt belangrijk voor de gemeenschap, het zal helpen begrijpen welke richting we verder moeten gaan, en hoe we de component in de toekomst kunnen ontwikkelen.<br \/>\n<br \/>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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 herstart | ProHoster","description":"Op 26 februari hielden we een meetup van Apache Ignite GreenSource, waar bijdragers van het open source-project Apache Ignite spraken.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/ignite-service-grid-perezagruzka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/23105"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}