{"id":56387,"date":"2020-02-12T00:00:00","date_gmt":"2020-02-11T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev"},"modified":"2020-02-18T14:04:39","modified_gmt":"2020-02-18T11:04:39","slug":"service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Doporu\u010duji se sezn\u00e1mit s vyhodnocen\u00edm zpr\u00e1vy Alexandra Sigacheva o Service Discovery v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul.<\/strong><\/p>\n<p><\/p>\n<p>Service Discovery byl vytvo\u0159en, aby bylo mo\u017en\u00e9 s minim\u00e1ln\u00edmi n\u00e1klady p\u0159ipojit novou aplikaci do ji\u017e existuj\u00edc\u00edho na\u0161eho prost\u0159ed\u00ed. Pomoc\u00ed Service Discovery m\u016f\u017eeme maxim\u00e1ln\u011b odd\u011blit bu\u010f kontejner ve form\u011b Dockeru, nebo virtu\u00e1ln\u00ed slu\u017ebu od prost\u0159ed\u00ed, ve kter\u00e9m je spu\u0161t\u011bna. <\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"IYWsZ8HFrCw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/IYWsZ8HFrCw\/hqdefault.jpg\" alt=\"P\u0159ehr\u00e1t video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>V\u0161echny v\u00e1s zdrav\u00edm! Jsem Alexander Sigachev, pracuji ve spole\u010dnosti Inventos. Dnes v\u00e1s sezn\u00e1m\u00edm s pojmem Service Discovery. Pod\u00edv\u00e1me se na Service Discovery na p\u0159\u00edkladu Consul.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jak\u00e9 probl\u00e9my Service Discovery \u0159e\u0161\u00ed? Service Discovery byl vytvo\u0159en, aby bylo mo\u017en\u00e9 s minim\u00e1ln\u00edmi n\u00e1klady p\u0159ipojit novou aplikaci do ji\u017e existuj\u00edc\u00edho na\u0161eho prost\u0159ed\u00ed. Pomoc\u00ed Service Discovery m\u016f\u017eeme maxim\u00e1ln\u011b odd\u011blit bu\u010f kontejner ve form\u011b Dockeru, nebo virtu\u00e1ln\u00ed slu\u017ebu od prost\u0159ed\u00ed, ve kter\u00e9m je spu\u0161t\u011bna. <\/p>\n<p><\/p>\n<p>Jak to vypad\u00e1? Na klasick\u00e9m p\u0159\u00edkladu ve webu \u2013 to je frontend, kter\u00fd p\u0159ij\u00edm\u00e1 u\u017eivatelsk\u00e9 po\u017eadavky. D\u00e1le prov\u00e1d\u00ed sm\u011brov\u00e1n\u00ed na backend. V tomto p\u0159\u00edkladu \u2013 load-balancer vyva\u017euje na dva backendy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zde vid\u00edme, \u017ee spou\u0161t\u00edme t\u0159et\u00ed instanci aplikace. Kdy\u017e se aplikace spust\u00ed, registruje se v Service Discovery. Service Discovery upozorn\u00ed load-balancer. Load-balancer automaticky m\u011bn\u00ed sv\u016fj konfigura\u010dn\u00ed soubor a ji\u017e je nov\u00fd backend zapojen do provozu. Takto mohou b\u00fdt backendy p\u0159id\u00e1v\u00e1ny nebo naopak vylu\u010dov\u00e1ny z provozu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Co dal\u0161\u00edho lze pohodln\u011b d\u011blat pomoc\u00ed Service Discovery? V Service Discovery mohou b\u00fdt ulo\u017eeny konfigurace nginx, certifik\u00e1ty a seznam aktivn\u00edch backendov\u00fdch server\u016f.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Service Discovery tak\u00e9 umo\u017e\u0148uje detekovat poruchy a zji\u0161\u0165ovat selh\u00e1n\u00ed. Jak\u00e9 mo\u017en\u00e9 sch\u00e9mata existuj\u00ed p\u0159i detekci selh\u00e1n\u00ed?<\/p>\n<p><\/p>\n<ul>\n<li>Tato aplikace, kterou jsme vyvinuli, sama upozor\u0148uje Service Discovery, \u017ee je st\u00e1le funk\u010dn\u00ed. <\/li>\n<li>Service Discovery se ze sv\u00e9 strany dotazuje aplikaci na dostupnost.<\/li>\n<li>Nebo se pou\u017e\u00edv\u00e1 extern\u00ed skript \u010di aplikace, kter\u00e1 kontroluje na\u0161i aplikaci na dostupnost a uv\u011bdomuje Service Discovery, \u017ee je v\u0161e v po\u0159\u00e1dku a m\u016f\u017ee pracovat, nebo naopak, \u017ee je n\u011bco \u0161patn\u011b a je t\u0159eba tuto instanci aplikace vylou\u010dit z vyva\u017eov\u00e1n\u00ed.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ka\u017ed\u00fd z pl\u00e1n\u016f m\u016f\u017ee b\u00fdt aplikov\u00e1n v z\u00e1vislosti na tom, jak\u00fd software pou\u017e\u00edv\u00e1me. Nap\u0159\u00edklad, pokud jsme pr\u00e1v\u011b za\u010dali vyv\u00edjet nov\u00fd projekt, m\u016f\u017eeme snadno zajistit sc\u00e9n\u00e1\u0159, kdy na\u0161e aplikace upozor\u0148uje Service Discovery. Nebo m\u016f\u017eeme zapojit, \u017ee Service Discovery prov\u00e1d\u00ed kontrolu.<\/p>\n<p><\/p>\n<p>Pokud v\u0161ak aplikace poch\u00e1z\u00ed z d\u011bdictv\u00ed nebo byla vyvinuta n\u011bk\u00fdm jin\u00fdm, pak zde plat\u00ed t\u0159et\u00ed mo\u017enost, kdy nap\u00ed\u0161eme zpracovatel a v\u0161e se automaticky zapoj\u00ed do na\u0161\u00ed pr\u00e1ce.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To je jeden z p\u0159\u00edklad\u016f. Load-balancer ve form\u011b nginx se restartuje. To je dal\u0161\u00ed n\u00e1stroj, kter\u00fd je poskytov\u00e1n spolu s Consul. To je consul-template. Popisujeme pravidlo. \u0158\u00edk\u00e1me, \u017ee pou\u017e\u00edv\u00e1me \u0161ablonu (\u0161abloniz\u00e1tor Golang). P\u0159i ud\u00e1lostech, p\u0159i notifikac\u00edch o zm\u011bn\u00e1ch, je znovu generov\u00e1no a Service Discovery dost\u00e1v\u00e1 p\u0159\u00edkaz \u201ereload\u201c. Nejjednodu\u0161\u0161\u00ed p\u0159\u00edklad, kdy se p\u0159i ud\u00e1losti p\u0159ekonfiguruje nginx a restartuje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Co je to Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>P\u0159edev\u0161\u00edm \u2013 je to Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>M\u00e1 mechanismus kontroly dostupnosti \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Tak\u00e9 m\u00e1 KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>A jeho z\u00e1kladn\u00ed mo\u017enost\u00ed je pou\u017eit\u00ed Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>K \u010demu v\u0161e toto lze vyu\u017e\u00edt? V KV Store m\u016f\u017eeme uchov\u00e1vat p\u0159\u00edklady konfigurac\u00ed. Health Checking m\u016f\u017eeme prov\u00e1d\u011bt kontrolu m\u00edstn\u00edch slu\u017eeb a upozor\u0148ovat na n\u011b. Multi Datacenter se pou\u017e\u00edv\u00e1 k tomu, abychom mohli vytvo\u0159it mapu slu\u017eeb. Nap\u0159\u00edklad Amazon m\u00e1 n\u011bkolik z\u00f3n a optim\u00e1ln\u011b sm\u011bruje provoz, aby nedoch\u00e1zelo k zbyte\u010dn\u00fdm dotaz\u016fm mezi datov\u00fdmi centry, kter\u00e9 se \u00fa\u010dtuj\u00ed odd\u011blen\u011b od m\u00edstn\u00edho provozu a maj\u00ed tedy ni\u017e\u0161\u00ed latenci. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Trochu se pod\u00edv\u00e1me na term\u00edny, kter\u00e9 se v Consul pou\u017e\u00edvaj\u00ed. <\/p>\n<p><\/p>\n<ul>\n<li>Consul \u2013 slu\u017eba napsan\u00e1 v Go. Jednou z v\u00fdhod programu napsan\u00e9ho v Go je, \u017ee tv\u016frce m\u00e1 jeden bin\u00e1rn\u00ed soubor, kter\u00fd si jednodu\u0161e st\u00e1hne. Spust\u00ed ho kdekoli a nem\u00e1 \u017e\u00e1dn\u00e9 z\u00e1vislosti. <\/li>\n<li>D\u00e1le pomoc\u00ed kl\u00ed\u010d\u016f m\u016f\u017eeme spustit tuto slu\u017ebu bu\u010f v re\u017eimu klienta, nebo v re\u017eimu serveru. <\/li>\n<li>Tak\u00e9 atribut \u201edatacenter\u201c umo\u017e\u0148uje nastavit p\u0159\u00edznak, k jak\u00e9mu datov\u00e9mu centru tento server pat\u0159\u00ed. <\/li>\n<li>Konsensus \u2013 vych\u00e1z\u00ed z protokolu raft. Pokud by n\u011bkoho zaj\u00edmalo, m\u016f\u017ee si o tom podrobn\u011bji p\u0159e\u010d\u00edst na str\u00e1nk\u00e1ch Consul. Je to protokol, kter\u00fd umo\u017e\u0148uje ur\u010dit l\u00eddra a ur\u010dit, kter\u00e9 \u00fadaje se pova\u017euj\u00ed za platn\u00e9 a dostupn\u00e9.<\/li>\n<li>Gossip je protokol, kter\u00fd zaji\u0161\u0165uje komunikaci mezi uzly. Tento syst\u00e9m je decentralizovan\u00fd. V r\u00e1mci jednoho datov\u00e9ho centra si v\u0161echny uzly vym\u011b\u0148uj\u00ed informace se sousedy, \u010d\u00edm\u017e si p\u0159ed\u00e1vaj\u00ed aktu\u00e1ln\u00ed stav. Lze \u0159\u00edci, \u017ee jde o drb\u00e1n\u00ed mezi sousedy. <\/li>\n<li>LAN Gossip \u2013 lok\u00e1ln\u00ed v\u00fdm\u011bna dat mezi sousedy v r\u00e1mci jednoho datov\u00e9ho centra. <\/li>\n<li>WAN Gossip \u2013 pou\u017e\u00edv\u00e1 se, kdy\u017e je t\u0159eba synchronizovat informace mezi dv\u011bma datov\u00fdmi centry. Informace putuj\u00ed mezi uzly, kter\u00e9 jsou ozna\u010deny jako servery. <\/li>\n<li>RPC \u2013 umo\u017e\u0148uje prov\u00e1d\u011bt dotazy z klienta na server. <\/li>\n<\/ul>\n<p><\/p>\n<p>Popis RPC. P\u0159edstavme si, \u017ee na virtu\u00e1ln\u00edm nebo fyzick\u00e9m serveru b\u011b\u017e\u00ed Consul jako klient. Lok\u00e1ln\u011b se k n\u011bmu p\u0159ipoj\u00edme, a pot\u00e9 lok\u00e1ln\u00ed klient po\u017e\u00e1d\u00e1 server o informace a synchronizuje se. Informace mohou b\u00fdt v z\u00e1vislosti na nastaven\u00ed poskytnuty z lok\u00e1ln\u00edho cache, nebo m\u016f\u017ee b\u00fdt synchronizov\u00e1na s v\u016fdcem, s hlavn\u00edm serverem. <\/p>\n<p><\/p>\n<p>Tyto dva p\u0159\u00edstupy maj\u00ed jak v\u00fdhody, tak nev\u00fdhody. Pokud pracujeme s lok\u00e1ln\u00edm cache, je to rychl\u00e9. Pokud pracujeme s daty ulo\u017een\u00fdmi na serveru, je to pomalej\u0161\u00ed, ale z\u00edsk\u00e1v\u00e1me aktu\u00e1ln\u011bj\u0161\u00ed informace.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pokud to zn\u00e1zorn\u00edme graficky, m\u00e1me takov\u00fd obr\u00e1zek str\u00e1nek. Vid\u00edme, \u017ee b\u011b\u017e\u00ed t\u0159i hlavn\u00ed uzly. Jeden je ozna\u010den hv\u011bzdi\u010dkou jako v\u016fdce. V tomto p\u0159\u00edkladu jsou t\u0159i klienti, kte\u0159\u00ed si mezi sebou vym\u011b\u0148uj\u00ed informace lok\u00e1ln\u011b p\u0159es UDP\/TCP. Informace mezi datov\u00fdmi centry se p\u0159en\u00e1\u0161ej\u00ed mezi servery. Klienti spolu interaguj\u00ed lok\u00e1ln\u011b. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jak\u00e9 API poskytuje Consul? Pro z\u00edsk\u00e1n\u00ed informac\u00ed m\u00e1 Consul dva typy API.<\/p>\n<p><\/p>\n<p>To je DNS API. Consul se standardn\u011b spou\u0161t\u00ed na portu 8600. M\u016f\u017eeme nastavit proxy pro \u017e\u00e1dost a zajistit p\u0159\u00edstup p\u0159es lok\u00e1ln\u00ed rozli\u0161en\u00ed, p\u0159es lok\u00e1ln\u00ed DNS. M\u016f\u017eeme dotazovat podle dom\u00e9ny a obdr\u017e\u00edme informace o IP adrese.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 nebo m\u016f\u017eeme lok\u00e1ln\u011b na portu 8500 po\u017e\u00e1dat o informace o konkr\u00e9tn\u00ed slu\u017eb\u011b a obdr\u017e\u00edme JSON odpov\u011b\u010f, jakou IP m\u00e1 server, jak\u00fd host, jak\u00fd port je zaregistrov\u00e1n. A dodate\u010dn\u00e9 informace mohou b\u00fdt p\u0159ed\u00e1ny p\u0159es token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Co je pot\u0159eba k spu\u0161t\u011bn\u00ed Consulu?<\/p>\n<p><\/p>\n<p>V prvn\u00edm re\u017eimu uv\u00e1d\u00edme v re\u017eimu v\u00fdvoj\u00e1\u0159e p\u0159\u00edznak, \u017ee se jedn\u00e1 o v\u00fdvoj\u00e1\u0159sk\u00fd re\u017eim. Agent se spou\u0161t\u00ed jako server. A ve\u0161kerou funkci vykon\u00e1v\u00e1 ji\u017e samostatn\u011b na jednom stroji. Je to pohodln\u00e9, rychl\u00e9 a prakticky nevy\u017eaduje \u017e\u00e1dn\u00e9 dal\u0161\u00ed nastaven\u00ed pro prvn\u00ed spu\u0161t\u011bn\u00ed.<\/p>\n<p><\/p>\n<p>Druh\u00fd re\u017eim \u2013 to je spu\u0161t\u011bn\u00ed v produkci. Zde se spu\u0161t\u011bn\u00ed m\u00edrn\u011b komplikuje. Pokud nem\u00e1me \u017e\u00e1dnou verzi konzole, mus\u00edme uv\u00e9st do bootstrapu prvn\u00ed stroj, tj. ten, kter\u00fd p\u0159evezme odpov\u011bdnost v\u016fdce. Zved\u00e1me ho, pot\u00e9 zved\u00e1me druh\u00fd instance serveru, p\u0159ed\u00e1v\u00e1me mu informace, kde m\u00e1me master. T\u0159et\u00ed zved\u00e1me. Po zvednut\u00ed t\u0159\u00ed stroj\u016f, na prvn\u00edm stroji ze spu\u0161t\u011bn\u00e9ho bootstrapu, restartujeme ho do b\u011b\u017en\u00e9ho re\u017eimu. \u00dadaje se synchronizuj\u00ed a po\u010d\u00e1te\u010dn\u00ed cluster je ji\u017e vytvo\u0159en. <\/p>\n<p><\/p>\n<p>Doporu\u010duje se spou\u0161t\u011bt od t\u0159\u00ed do sedmi instanc\u00ed v re\u017eimu serveru. To je d\u00e1no t\u00edm, \u017ee pokud se po\u010det server\u016f zvy\u0161uje, zvy\u0161uje se tak\u00e9 \u010das na synchronizaci informac\u00ed mezi nimi. Po\u010det uzl\u016f by m\u011bl b\u00fdt lich\u00fd, aby se zajistila kv\u00f3rum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jak se zaji\u0161\u0165uj\u00ed Health Checks? Do adres\u00e1\u0159e pro konfiguraci Consul p\u00ed\u0161eme pravidlo kontroly ve form\u00e1tu JSON. Prvn\u00ed mo\u017enost \u2013 je dostupnost v tomto p\u0159\u00edkladu dom\u00e9ny google.com. A \u0159\u00edk\u00e1me, \u017ee s intervalem 30 sekund je t\u0159eba tuto kontrolu prov\u00e1d\u011bt. T\u00edmto zp\u016fsobem kontrolujeme, \u017ee na\u0161e uzel m\u00e1 p\u0159\u00edstup do vn\u011bj\u0161\u00ed s\u00edt\u011b.<\/p>\n<p><\/p>\n<p>Druh\u00e1 mo\u017enost \u2013 je kontrola sebe sama. Pomoc\u00ed b\u011b\u017en\u00e9ho curl dotazujeme localhost na uveden\u00e9m portu s intervalem 10 sekund. <\/p>\n<p><\/p>\n<p>Tyto kontroly se s\u010d\u00edtaj\u00ed a vstupuj\u00ed do Service Discovery. Na z\u00e1klad\u011b dostupnosti jsou tyto uzly bu\u010f vylou\u010deny, nebo se objevuj\u00ed v seznamu dostupn\u00fdch a spr\u00e1vn\u011b funguj\u00edc\u00edch stroj\u016f. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tak\u00e9 Consul poskytuje u\u017eivatelsk\u00e9 rozhran\u00ed, kter\u00e9 se s jedn\u00edm speci\u00e1ln\u00edm p\u0159\u00edznakem spou\u0161t\u00ed a bude dostupn\u00e9 na stroji. To umo\u017e\u0148uje zobrazovat informace a tak\u00e9 lze prov\u00e1d\u011bt n\u011bkter\u00e9 zm\u011bny. <\/p>\n<p><\/p>\n<p>V tomto p\u0159\u00edkladu je otev\u0159en\u00e1 z\u00e1lo\u017eka \u201eSlu\u017eba\u201c. Je zobrazena informace, \u017ee jsou spu\u0161t\u011bny t\u0159i slu\u017eby, z nich\u017e jedna je Consul. Po\u010det proveden\u00fdch kontrol. A existuj\u00ed t\u0159i datov\u00e1 centra, v nich\u017e se nach\u00e1zej\u00ed stroje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Objevov\u00e1n\u00ed slu\u017eeb v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Toto je p\u0159\u00edklad z\u00e1lo\u017eky \u201eNodes\u201c. Vid\u00edme, \u017ee maj\u00ed slo\u017een\u00e9 n\u00e1zvy na z\u00e1klad\u011b datov\u00fdch center. Zde je tak\u00e9 zobrazeno, jak\u00e9 slu\u017eby jsou spu\u0161t\u011bny, tj. vid\u00edme, \u017ee tagy nejsou nastaveny. V t\u011bchto dodate\u010dn\u00fdch tag\u00e1ch lze zadat n\u011bjak\u00e9 informace, kter\u00e9 m\u016f\u017ee v\u00fdvoj\u00e1\u0159 pou\u017e\u00edt pro ur\u010den\u00ed dal\u0161\u00edch parametr\u016f. <\/p>\n<p><\/p>\n<p>Informace o stavu disk\u016f a pr\u016fm\u011brn\u00e9m zat\u00ed\u017een\u00ed lze tak\u00e9 p\u0159ed\u00e1vat do Consulu.<\/p>\n<p><\/p>\n<p>Ot\u00e1zky<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: M\u00e1me docker kontejner, jak ho pou\u017e\u00edt s Consulem?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Pro docker kontejner existuje n\u011bkolik p\u0159\u00edstup\u016f. Jedn\u00edm z nejb\u011b\u017en\u011bj\u0161\u00edch je pou\u017e\u00edt extern\u00ed docker kontejner odpov\u011bdn\u00fd za registraci. P\u0159i spu\u0161t\u011bn\u00ed mu je p\u0159ed\u00e1n socket dockeru. V\u0161echny ud\u00e1losti o registraci a de publikaci kontejneru jsou zaznamen\u00e1v\u00e1ny v Consulu.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Tedy, Consul s\u00e1m spou\u0161t\u00ed docker kontejner?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Ne. My spou\u0161t\u00edme docker kontejner. A p\u0159i konfiguraci ud\u00e1v\u00e1me \u2013 poslouchej tento socket. Je to p\u0159ibli\u017en\u011b tak, jako kdy\u017e pracujeme se certifik\u00e1tem, kdy p\u0159ed\u00e1v\u00e1me informace o tom, kde a co m\u00e1me. <\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Z\u0159ejm\u011b by uvnit\u0159 docker kontejneru, kter\u00fd se sna\u017e\u00edme p\u0159ipojit k Service Discovery, m\u011bla b\u00fdt n\u011bjak\u00e1 logika, kter\u00e1 um\u00ed poskytovat data Consulu?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Ne \u00fapln\u011b. Kdy\u017e se spust\u00ed, p\u0159ed\u00e1v\u00e1me prom\u011bnn\u00e9 prost\u0159ed\u00ed. Nap\u0159\u00edklad, n\u00e1zev slu\u017eby, port slu\u017eby. Registr je poslouch\u00e1 a zaznamen\u00e1v\u00e1 do Consulu.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: M\u00e1m je\u0161t\u011b ot\u00e1zku ohledn\u011b UI. Nasadili jsme UI, \u0159ekn\u011bme, na produk\u010dn\u00edm serveru. Jak to je s bezpe\u010dnost\u00ed? Kde se ukl\u00e1daj\u00ed data? M\u016f\u017eeme n\u011bjak kumulovat data?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: V UI jsou pr\u00e1v\u011b data z datab\u00e1ze a ze Service Discovery. Hesla nastavujeme v nastaven\u00ed sami. <\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Lze to publikovat na internetu?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Ve v\u00fdchoz\u00edm stavu Consul startuje na localhost. Abychom to publikovali na internet, bude pot\u0159eba nasadit n\u011bjak\u00fd proxy. Za bezpe\u010dnostn\u00ed pravidla odpov\u00edd\u00e1me sami.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Poskytuje historick\u00e1 data standardn\u011b? Zaj\u00edmav\u00e9 by bylo pod\u00edvat se na statistiku Health Checks. Lze diagnostikovat probl\u00e9my, pokud server \u010dasto selh\u00e1v\u00e1.<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Nejsem si jist, \u017ee tam jsou detaily kontrol. <\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Nen\u00ed tolik d\u016fle\u017eit\u00e9 aktu\u00e1ln\u00ed stav, jako d\u016fle\u017eit\u00e1 dynamika.<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Pro anal\u00fdzu \u2013 ano.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Je lep\u0161\u00ed nepou\u017e\u00edvat Service Discovery pro docker s Consulem?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Nedoporu\u010doval bych ho pou\u017e\u00edvat. C\u00edlem zpr\u00e1vy je p\u0159edstavit, co tento pojem znamen\u00e1. Historicky u\u0161el cestu, mysl\u00edm, a\u017e k prvn\u00ed verzi. Nyn\u00ed ji\u017e existuj\u00ed plnohodnotn\u011bj\u0161\u00ed \u0159e\u0161en\u00ed, nap\u0159\u00edklad Kubernetes, kter\u00e9 to v\u0161echno m\u00e1 pod kapotou. V r\u00e1mci Kubernetes Service Discovery ustupuje Etcd. Ale nezn\u00e1m ho tak podrobn\u011b jako Consul. Proto jsem se rozhodl uk\u00e1zat Service Discovery na p\u0159\u00edkladu Consul.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Sch\u00e9ma s l\u00eddrem serveru nezp\u016fsobuje zpo\u017ed\u011bn\u00ed p\u0159i spu\u0161t\u011bn\u00ed aplikace celkov\u011b? A jak Consul ur\u010duje nov\u00e9ho l\u00eddra, pokud ten p\u016fvodn\u00ed sel\u017ee?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Maj\u00ed pops\u00e1n cel\u00fd protokol. Pokud m\u00e1te z\u00e1jem, m\u016f\u017eete si to p\u0159e\u010d\u00edst.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Consul u n\u00e1s funguje jako plnohodnotn\u00fd server a v\u0161echny po\u017eadavky proch\u00e1zej\u00ed p\u0159es n\u011bj?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Nep\u016fsob\u00ed jako plnohodnotn\u00fd server, ale pokr\u00fdv\u00e1 ur\u010ditou oblast. Ta v\u011bt\u0161inou kon\u010d\u00ed service.consul. A d\u00e1le u\u017e postupujeme logicky. V produkci nepou\u017e\u00edv\u00e1me dom\u00e9nov\u00e1 jm\u00e9na, ale intern\u00ed infrastrukturu, kter\u00e1 se obvykle skr\u00fdv\u00e1 za ke\u0161ov\u00e1n\u00edm serveru, pokud pracujeme s DNS.<\/p>\n<p><\/p>\n<p>Ot\u00e1zka: Tedy, pokud se chceme obr\u00e1tit na datab\u00e1zi, budeme v ka\u017ed\u00e9m p\u0159\u00edpad\u011b muset zavolat Consul, abychom tuto datab\u00e1zi nejprve na\u0161li, \u017ee?<\/p>\n<p><\/p>\n<p>Odpov\u011b\u010f: Ano. Pokud pracujeme s DNS, funguje to stejn\u011b jako bez Consul, kdy\u017e pou\u017e\u00edv\u00e1me DNS jm\u00e9na. Obvykle modern\u00ed aplikace nevytv\u00e1\u0159ej\u00ed dotazy na dom\u00e9nov\u00e1 jm\u00e9na v ka\u017ed\u00e9m po\u017eadavku, proto\u017ee jsme nav\u00e1zali spojen\u00ed, v\u0161echno funguje, a v bl\u00edzk\u00e9 dob\u011b to t\u00e9m\u011b\u0159 nepou\u017e\u00edv\u00e1me. Pokud se spojen\u00ed rozpadne, pak \u2013 ano, znovu se pt\u00e1me, kde m\u00e1me datab\u00e1zi a jdeme k n\u00ed.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat k produkt\u016fm hashicorp<\/a><\/noindex> \u2014 Chat u\u017eivatel\u016f Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Co se t\u00fd\u010de health checks. V Consul i v Kubernetes se pou\u017e\u00edv\u00e1 stejn\u00fd syst\u00e9m kontroly stavu \u017eivosti slu\u017eby na z\u00e1klad\u011b status k\u00f3du.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK pro zdrav\u00fd\n503 Service Unavailable pro nezdrav\u00fd<\/code><\/pre>\n<p><\/p>\n<p>Zdroje:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.consul.io\/docs\/agent\/checks.html\">https:\/\/www.consul.io\/docs\/agent\/checks.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/\">https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/\">https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/<\/a><\/noindex><\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/487706\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Service Discovery, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043a\u0435\u0440\u0430, \u043b\u0438\u0431\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442 \u0442\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56387","post","type-post","status-publish","format-standard","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=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\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\/cs\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\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=\"2020-02-11T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:39+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\udd47Service Discovery v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Alexandr Sigachev | ProHoster","description":"Doporu\u010duji se sezn\u00e1mit s v\u00fdkladem zpr\u00e1vy Alexandra Sigacheva Service Discovery v distribuovan\u00fdch syst\u00e9mech na p\u0159\u00edkladu Consul. Service Discovery je vytvo\u0159en pro minim\u00e1ln\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","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":"2020-02-11T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56387","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:25:40","updated":"2022-10-01 05:49:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}