{"id":30785,"date":"2019-10-31T21:37:25","date_gmt":"2019-10-31T18:37:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\/"},"modified":"2019-10-31T21:37:25","modified_gmt":"2019-10-31T18:37:25","slug":"stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","title":{"rendered":"Jaotatud rakenduste ehitusplokid. Null-l\u00e4henemine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jaotatud rakenduste ehitusplokid. Null-l\u00e4henemine\" src=\"\/wp-content\/uploads\/2019\/04\/88d4e363538bdfc67690c8339dca790b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Maailm ei seisa paigal. Edusammud loovad uusi tehnoloogilisi v\u00e4ljakutseid. Muutunud n\u00f5udmistega peab arenema ka info s\u00fcsteemide arhitektuur. T\u00e4na r\u00e4\u00e4gime s\u00fcndmustele suunatud arhitektuurist, konkurentsist, paralleelsusest, as\u00fcnkroonsusest ja sellest, kuidas elada k\u00f5igi nendega harmooniliselt Erlangis.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"vvedenie\">Sissejuhatus<\/h2>\n<p><\/p>\n<p>S\u00f5ltuvalt kavandatava s\u00fcsteemi suurusest ja n\u00f5uetest valime me, arendajad, info vahetamise viisi s\u00fcsteemis. Enamasti on teenuste omavaheline suhtlemine t\u00f6\u00f6versioon, mis p\u00f5hineb n\u00e4iteks RabbitMQ v\u00f5i Kafka vahenditel. Kuid m\u00f5nikord on s\u00fcndmustevool, SLA ja s\u00fcsteemi kontrolli tase sellised, et valmis s\u00f5numiedastus ei sobi meile. Muidugi, s\u00fcsteemi on v\u00f5imalik veidi keerulisemaks muuta, v\u00f5ttes vastutuse transportimisleveli ja klastrite loomise eest, kasutades n\u00e4iteks ZeroMQ v\u00f5i nanomsg. Kuid kui s\u00fcsteemi piisab tavalise Erlangi klastri l\u00e4bilaskev\u00f5imest ja suutlikkusest, siis t\u00e4iendava \u00fcksuse lisamise k\u00fcsimus n\u00f5uab p\u00f5hjalikku uurimist ja majanduslikku p\u00f5hjendamist.<\/p>\n<p><\/p>\n<p>Reaktiivsete jaotatud rakenduste teema on \u00fcsna ulatuslik. Et j\u00e4\u00e4da artikli formaati, on t\u00e4nase arutelu objektiks ainult homogeenid keskkonnad, mis on loodud Erlang\/Elixiri baasil. Erlang\/OTP \u00f6kos\u00fcsteem v\u00f5imaldab rakendada reaktiivset arhitektuuri minimaalsete t\u00f6\u00f6j\u00f5ukuludega. Kuid igal juhul vajame me s\u00f5numite vahetamise taset. <\/p>\n<p><\/p>\n<h2 id=\"teoreticheskiy-bazis\">Teoreetiline alusp\u00f5hi<\/h2>\n<p><\/p>\n<p>Projekteerimine algab eesm\u00e4rkide ja piirangute m\u00e4\u00e4ratlemisest. Peamine eesm\u00e4rk ei seisne arendamises enese p\u00e4rast. Me peame saama turvalise ja skaleeritava t\u00f6\u00f6riista, mille p\u00f5hjal on v\u00f5imalik luua ja mis k\u00f5ige t\u00e4htsam \u2013 arendada kaasaegseid rakendusi erinevatel tasemetel: alates \u00fche serveriga lahendustest, mis teenindavad v\u00e4ikest publikut, kuni klastriteni, mis v\u00f5ivad kasvada kuni 50-60 s\u00f5lme, l\u00f5petades klastri f\u00f6deratsioonidega. Seega, peamine eesm\u00e4rk on maksimaalse kasumi saavutamine, v\u00e4hendades l\u00f5pp-s\u00fcsteemi arendamise ja omamise kulusid.<\/p>\n<p><\/p>\n<p>Toome v\u00e4lja 4 peamist n\u00f5uet l\u00f5pp-s\u00fcsteemile:<\/p>\n<p><\/p>\n<ul>\n<li><strong>A<\/strong>s\u00fcndmusele suunatus.<br \/>\nS\u00fcsteem on alati valmis t\u00f6\u00f6tlema s\u00fcndmustevoolu ja teostama vajalikke toiminguid;<\/li>\n<li><strong>M<\/strong>skaalautuvus.<br \/>\nErilised plokid saavad skaleeruda nii vertikaalselt kui ka horisontaalselt. Kogu s\u00fcsteem peab toetama l\u00f5pmat horisontaalset kasvu;<\/li>\n<li><strong>O<\/strong>ttkestvusp\u00f5him\u00f5te.<br \/>\nK\u00f5ik tasemed ja teenused peavad saama automaatselt taastuda t\u00f5rgete korral;<\/li>\n<li><strong>G<\/strong>arantiseeritud reageerimisaeg.<br \/>\nAeg on v\u00e4\u00e4rtuslik ja kasutajad ei tohiks liiga kaua oodata.<\/li>\n<\/ul>\n<p><\/p>\n<p>M\u00e4letate vana muinasjuttu \"The little engine that could\", tuntud ka kui \"Paarovozik, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043c\u043e\u0433\"? Et kavandatud s\u00fcsteem saaks edukalt protot\u00fc\u00fcbist edasi liikuda ja olla progresseeruv, peab selle alus vastama minimaalsetele n\u00f5uetele. <strong>SUUTIS<\/strong>.<\/p>\n<p><\/p>\n<p>Messaging\u2019ule kui infrastruktuuri t\u00f6\u00f6riistale ja k\u00f5igi teenuste alusele lisandub veel \u00fcks aspekt: programmeerijate kasutusmugavus.<\/p>\n<p><\/p>\n<h3 id=\"orientirovannost-na-sobytiya\">S\u00fcndmustele orienteeritus<\/h3>\n<p><\/p>\n<p>Et rakendus saaks kasvada \u00fchest <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-los-angeles\/\"   title=\"serverilt\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3480\">serverilt<\/a> klastrist, peab selle arhitektuur tagama n\u00f5rga sidususe. Sellele n\u00f5udele vastab as\u00fcnkroonne mudel. Sel puhul hoolitsevad saatja ja vastuv\u00f5tja s\u00f5numi informatiivsete koormuste eest, muretsemata edastamise ja suunamise p\u00e4rast s\u00fcsteemis.<\/p>\n<p><\/p>\n<h3 id=\"masshtabiruemost\">Skaleeritavus<\/h3>\n<p><\/p>\n<p>Skaalautuvus ja s\u00fcsteemi efektiivsus k\u00f5rvuti. Rakenduse komponendid peavad olema v\u00f5imelised \u00e4ra kasutama k\u00f5iki saadaval olevaid ressursse. Mida efektiivsemalt suudame ressursse kasutada ja mida optimaalsemad on meie t\u00f6\u00f6tlemismeetodid, seda v\u00e4hem raha kulutame seadmetele. <\/p>\n<p><\/p>\n<p>\u00dchel masinal loob Erlang k\u00f5rge konkurentsiv\u00f5ime. Tasakaalu konkurentsi ja paralleelsuse vahel saab m\u00e4\u00e4rata, valides operatsioonis\u00fcsteemi jaoks Erlang VM-ile saadaval olevate l\u00f5ime arvu ja nende l\u00f5imede seas jaotavate ajakava arv.<br \/>\nErlang'i protsessid ei oma \u00fchisteavet ja t\u00f6\u00f6tavad mitteblokeerivas re\u017eiimis. See tagab v\u00f5rreldes traditsiooniliste rakendustega, mis p\u00f5hinevad blokeerival s\u00fcnkroniseerimisel, suhteliselt madala latentsuse ja k\u00f5rgema l\u00e4bilaskev\u00f5ime. Erlang'i ajakava hoolitseb CPU ja IO \u00f5iglase jaotamise eest, ning blokeerimise puudumine v\u00f5imaldab rakendusel vastata isegi tipukoormuse v\u00f5i t\u00f5rgete ajal. <\/p>\n<p><\/p>\n<p>Klastri tasandil on probleemid ressursside kasutamisega samuti olemas. Oluline on, et k\u00f5ik masinad klastris oleksid \u00fchtlaselt koormatud ning v\u00f5rk ei oleks \u00fcle koormatud. Kujutame ette olukorda: kasutajate liiklus j\u00f5uab sisse minevatesse koormuse jaotajatesse (haproxy, nginx jne), need jaotavad taotlused v\u00f5imalikult \u00fchtlaselt t\u00f6\u00f6tlemiseks k\u00e4tte saadavale taustteenuste hulgale. Rakenduse infrastruktuuris on teenus, mis rakendab vajalikku liidest, ainult viimane etapp, ja tal on vaja esialgse taotluse vastamiseks paluda mitmeid teisi teenuseid. Sisemised taotlused vajavad samuti suunamist ja koormuse jaotamist.<br \/>\nAndmevoogude t\u00f5husaks haldamiseks peab s\u00f5numside pakkuma arendajatele liidese koormuse ja marsruudi haldamiseks. Sel moel saavad arendajad kasutada mikroteenuste mustreid (aggregator, proxy, chain, branch jne) nii tavaliste kui ka haruldaste \u00fclesannete lahendamiseks. <\/p>\n<p><\/p>\n<p>\u00c4ripoolest vaadates on skaleeritavus \u00fcks riskide juhtimise t\u00f6\u00f6riistadest. Peamine on rahuldada klientide n\u00f5udmised, kasutades varustust optimaalselt:<\/p>\n<p><\/p>\n<ul>\n<li>Varustuse v\u00f5imsuse suurenemise t\u00f5ttu tehnoloogia edenemisel. See ei seisa t\u00fchjalt tarkvara puudulikkuse t\u00f5ttu. Erlang skaleerub suurep\u00e4raselt vertikaalselt ja suudab alati kasutada \u00e4ra k\u00f5ik CPU tuumad ja saadaval m\u00e4lu;<\/li>\n<li>Pilvekeskkondades saame juhtida varustuse hulka vastavalt hetke v\u00f5i prognoositud koormusele ja tagada SLA.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"otkazoustoychivost\">Talitluskatkestustunne<\/h3>\n<p><\/p>\n<p>K\u00e4sitleme kahte aksioomi: \u201cT\u00f5rked on vastuv\u00f5etamatud\u201d ja \u201cT\u00f5rked on alati olemas\u201d. \u00c4ri\u00fchingu jaoks t\u00e4hendab tarkvara t\u00f5rge rahakaotust, veelgi halvem \u2013 reputatsiooni. T\u00f5rketaluvate tarkvarade arendamise v\u00f5imalike kaotuste ja kulude vahel tasakaalu otsides saab sageli leida kompromissi.<\/p>\n<p><\/p>\n<p>L\u00fchiajaliselt hoiab t\u00f5rketaluv arhitektuur kokku raha valmis klasterlahenduste ostmiselt. Need on kallid ja need sisaldavad samuti vigu.<br \/>\nPikemas perspektiivis katab t\u00f5rketaluv arhitektuur n\u00f5udmistele vastamise kulud k\u00f5ikides arenguetappides mitu korda.<br \/>\nS\u00f5numiedastus koodibaasis, mis on endiselt arendusetapis, v\u00f5imaldab s\u00fcvitsi minna komponentide vahelisse suhtlemisse s\u00fcsteemi sees. See lihtsustab tasku t\u00f5rgete reageerimist ja haldamist, kuna k\u00f5ik vastutavad komponendid k\u00e4sitlevad t\u00f5rkeid, ja l\u00f5ppkokkuv\u00f5ttes teab s\u00fcsteem, kuidas disaini j\u00e4rgi automaatselt taastuda tavap\u00e4rasesse seisundisse t\u00f5rke j\u00e4rel.<\/p>\n<p><\/p>\n<h3 id=\"otzyvchivost\">Reageerimisv\u00f5ime<\/h3>\n<p><\/p>\n<p>S\u00f5ltumata t\u00f5ketest peab rakendus vastama p\u00e4ringutele ja rahuldama SLA-d. Fakt on see, et inimesed ei soovi oodata, seega peab \u00e4ri kohanduma. \u00dcha enam oodatakse rakendustelt k\u00f5rget reageerimisv\u00f5imet.<br \/>\nReageerivad rakendused t\u00f6\u00f6tavad peaaegu reaalajas. Erlang VM t\u00f6\u00f6tab pehme reaalaja re\u017eiimis. M\u00f5nedes valdkondades, nagu b\u00f6rsikaubandus, meditsiin ja t\u00f6\u00f6stusseadmete haldamine, on oluline range reaalaja re\u017eiim.<br \/>\nReageerivad s\u00fcsteemid parandavad UX-i ja on ettev\u00f5ttele kasulikud.<\/p>\n<p><\/p>\n<h2 id=\"predvaritelnyy-itog\">Eelkokkuv\u00f5te<\/h2>\n<p><\/p>\n<p>Selle artikli kirjutamisel tahtsin jagada kogemusi s\u00f5numite vahetuse maaklerite loomisel ja keerukate s\u00fcsteemide \u00fclesehitamisel selle baasil. Kuid teoreetiline ja motiveeriv osa osutus \u00fcsna ulatuslikuks.<br \/>\nArtikli teises osas r\u00e4\u00e4gin vahetuspunktide rakendamise n\u00fcanssidest, s\u00f5numivahetuse mustritest ja nende rakendamisest.<br \/>\nKolmandas osas vaatleme teenuste korraldamise, marsruutimise ja koormuse tasakaalu \u00fcldk\u00fcsimusi. R\u00e4\u00e4gime praktilisest k\u00fcljest s\u00fcsteemide skaleeritavuse ja t\u00f5rkekindluse osas.<\/p>\n<p><\/p>\n<p>Esimese osa l\u00f5pp.<\/p>\n<p><\/p>\n<p>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/SRjZtxsK3Os\">@lucabravo<\/a><\/noindex>.<\/p>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446028\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u0440 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. \u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b. \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0434\u043e\u043b\u0436\u043d\u0430 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432 Erlang \u043c\u043e\u0436\u043d\u043e \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c \u043c\u0438\u0440\u043d\u043e. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u043d\u0435\u0439, \u043c\u044b, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22770,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30785","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.1.1 - aioseo.com -->\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\/et\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\udd47\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u0443\u043b\u0435\u0432\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\" \/>\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:37:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:25+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\udd47Jaotatud rakenduste ehitusplokid. Nullini l\u00e4henemine | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\udd47\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u0443\u043b\u0435\u0432\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","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:37:25+00:00","article:modified_time":"2019-10-31T18:37:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30785","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-02-22 15:31:13","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:29:56","updated":"2026-02-22 15:31:13","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=30785"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30785\/revisions"}],"predecessor-version":[{"id":162006,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30785\/revisions\/162006"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/22770"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=30785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=30785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=30785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}