{"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\/hr\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Predla\u017eem da se upoznate s transkripcijom izvje\u0161taja Aleksandra Sigatcheva o Service Discovery u distribuiranim sustavima na primjeru Consul.<\/strong><\/p>\n<p><\/p>\n<p>Service Discovery je stvoren kako bi se novo aplikaciju moglo povezati u ve\u0107 postoje\u0107e na\u0161e okru\u017eenje uz minimalne tro\u0161kove. Koriste\u0107i Service Discovery, mo\u017eemo maksimalno odvojiti bilo koji kontejner kao \u0161to je Docker, ili virtualnu uslugu od okru\u017eenja u kojem je pokrenuta. <\/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=\"Pogledajte 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>Pozdrav svima! Ja sam Aleksandar Sigachev, radim u tvrtki Inventos. Danas \u0107u vas upoznati s pojmom Service Discovery. Istra\u017eit \u0107emo Service Discovery na primjeru Consul.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Koje probleme rje\u0161ava Service Discovery? Service Discovery je stvoren kako bi se novo aplikaciju moglo povezati u ve\u0107 postoje\u0107e na\u0161e okru\u017eenje uz minimalne tro\u0161kove. Koriste\u0107i Service Discovery, mo\u017eemo maksimalno odvojiti bilo koji kontejner kao \u0161to je Docker, ili virtualnu uslugu od okru\u017eenja u kojem je pokrenuta. <\/p>\n<p><\/p>\n<p>Kako to izgleda? Na klasi\u010dnom primjeru u webu \u2013 to je frontend koji prima korisni\u010dki zahtjev. Zatim izvr\u0161ava usmjeravanje na backend. U ovom primjeru \u2013 load-balancer ravnote\u017ea na dva backend-a.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ovdje vidimo da pokre\u0107emo tre\u0107i primjerak aplikacije. Kada se aplikacija pokrene, registrira se u Service Discovery. Service Discovery obavje\u0161tava load-balancer. Load-balancer automatski mijenja svoju konfiguraciju i novi backend se priklju\u010duje u rad. Tako se mogu dodavati backendi ili, suprotno, isklju\u010divati iz rada.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0160to jo\u0161 mo\u017ee biti korisno pomo\u0107u Service Discovery? U Service Discovery mogu se pohranjivati konfiguracije nginx-a, certifikati i popis aktivnih backend poslu\u017eitelja.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Tako\u0111er, Service Discovery omogu\u0107uje otkrivanje kvarova i neuspjeha. Koje sheme su mogu\u0107e prilikom otkrivanja kvarova?<\/p>\n<p><\/p>\n<ul>\n<li>Ova aplikacija, koju smo razvili, sama obavje\u0161tava Service Discovery da je jo\u0161 uvijek operativna. <\/li>\n<li>Service Discovery sa svoje strane ispituje aplikaciju o dostupnosti.<\/li>\n<li>Ili se koristi vanjski skript ili aplikacija koja provjerava na\u0161u aplikaciju na dostupnost i obavje\u0161tava Service Discovery da je sve u redu i mo\u017ee raditi, ili, suprotno, da je sve lo\u0161e i da je potrebno isklju\u010diti ovaj primjerak aplikacije iz ravnote\u017ee.<\/li>\n<\/ul>\n<p><\/p>\n<p>Svaka od shema mo\u017ee se primijeniti ovisno o tome koje softver koristimo. Na primjer, ako smo tek po\u010deli razvijati novi projekt, mo\u017eemo lako omogu\u0107iti shemu u kojoj na\u0161a aplikacija obavje\u0161tava Service Discovery. Ili mo\u017eemo povezati da Service Discovery provodi provjeru.<\/p>\n<p><\/p>\n<p>Ako nam je aplikacija ostavljena u nasljedstvo ili je razvijena od strane nekog tre\u0107eg, tada dolazi u obzir tre\u0107a opcija, kada pi\u0161emo obrtnik, i sve to automatski dolazi u na\u0161u radnu okolinu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ovo je jedan od primjera. Load-balancer u obliku nginx se ponovo pokre\u0107e. To je dodatni alat koji se isporu\u010duje zajedno s Consulom. To je consul-template. Opisujemo pravilo. Ka\u017eemo da koristimo predlo\u017eak (Golang predlo\u017eak). Kada se dogode doga\u0111aji, prilikom obavijesti o promjenama, on se ponovno generira i Service Discovery \u0161alje komandu \"reload\". Najjednostavniji primjer, kada se na temelju doga\u0111aja ponovo konfigurira nginx i ponovo pokre\u0107e.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0160to je Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Prije svega \u2013 to je Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Ima mehanizam provjere dostupnosti \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Tako\u0111er ima KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>I u njegovoj osnovi je mogu\u0107nost kori\u0161tenja Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Za \u0161to mo\u017eemo koristiti sve ovo? U KV Store mo\u017eemo pohranjivati primjere konfiguracija. Health Checking mo\u017eemo provoditi za lokalnu uslugu i obavje\u0161tavati. Multi Datacenter se koristi kako bi se mogla izgraditi karta usluga. Na primjer, Amazon ima nekoliko zona i usmjerava promet najoptimalnije, kako ne bi bilo suvi\u0161nih zahtjeva izme\u0111u podatkovnih centara, koji se posebno napla\u0107uju od lokalnog prometa, a samim tim imaju manju latenciju. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pogledajmo malo termine koji se koriste u Consulu. <\/p>\n<p><\/p>\n<ul>\n<li>Consul je usluga napisana u Go. Jedna od prednosti programa na Go je to \u0161to je to jedan binarni datoteka, koju jednostavno preuzmete. Pokrenete je s bilo kojeg mjesta i nemate nikakvih ovisnosti. <\/li>\n<li>Zatim pomo\u0107u klju\u010deva mo\u017eemo pokrenuti ovu uslugu ili u klijentskom re\u017eimu, ili u re\u017eimu servera. <\/li>\n<li>Tako\u0111er atribut \"datacenter\" omogu\u0107uje postavljanje oznake kojem podatkovnom centru pripada ovaj server. <\/li>\n<li>Consensus se temelji na raft protokolu. Ako vas to zanima, mo\u017eete pro\u010ditati vi\u0161e o tome na web stranici Consul. To je protokol koji omogu\u0107uje odre\u0111ivanje vo\u0111e i definiranje koje podatke smatrati valjanima i dostupnima.<\/li>\n<li>Gossip \u2013 je protokol koji omogu\u0107uje interakciju izme\u0111u nodova. Ovaj sustav je decentraliziran. Unutar jednog data centra, svi nodovi komuniciraju s susjedima. Na taj na\u010din, informacije o aktualnom stanju se me\u0111usobno prenose. Mo\u017ee se re\u0107i da su to nekakve glasine me\u0111u susjedima. <\/li>\n<li>LAN Gossip \u2013 lokalna razmjena podataka izme\u0111u susjednih nodova unutar jednog data centra. <\/li>\n<li>WAN Gossip \u2013 koristi se kada je potrebno sinkronizirati informacije izme\u0111u dva data centra. Informacije se prenose izme\u0111u nodova ozna\u010denih kao server. <\/li>\n<li>RPC \u2013 omogu\u0107uje izvr\u0161avanje zahtjeva putem klijenta na serveru. <\/li>\n<\/ul>\n<p><\/p>\n<p>Opis RPC-a. Pretpostavimo da je na virtualnoj ili fizi\u010dkoj ma\u0161ini pokrenut Consul kao klijent. Na njega se lokalno obra\u0107amo. Lokalni klijent zatim tra\u017ei informacije od servera i sinkronizira se. Ovisno o postavkama, informacije se mogu vra\u0107ati iz lokalnog ke\u0161a ili se mogu sinkronizirati s vo\u0111om, glavnim serverom. <\/p>\n<p><\/p>\n<p>Ova dva modela imaju svoje prednosti i nedostatke. Ako radimo s lokalnim ke\u0161om, to je brzo. Ako radimo s podacima pohranjenim na serveru, to je sporije, ali dobijamo a\u017euriranije informacije.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ako ovo prika\u017eemo grafi\u010dki, dobit \u0107emo sliku web stranice. Vidimo da imamo tri glavna \u010dvora. Jedan je ozna\u010den zvijezdom kao vo\u0111a. U ovom primjeru, tri klijenta me\u0111usobno razmjenjuju informacije lokalno preko UDP\/TCP protokola. A informacije izme\u0111u data centara prenose se izme\u0111u servera. Ovdje klijenti me\u0111usobno komuniciraju lokalno. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Koji API daje Consul? Da bismo dobili informacije, Consul nudi dva tipa API-a.<\/p>\n<p><\/p>\n<p>To je DNS API. Po defaultu, Consul se pokre\u0107e na portu 8600. Mo\u017eemo postaviti proksiranje zahtjeva i osigurati pristup putem lokalnog razrje\u0161avanja, preko lokalnog DNS-a. Mo\u017eemo zatra\u017eiti po domeni i dobiti informacije o IP adresi kao odgovor.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 ili mo\u017eemo lokalno na portu 8500 zatra\u017eiti informacije o odre\u0111enoj usluzi i dobiti JSON odgovor koji sadr\u017ei koji IP ima server, koji host, koji port je registriran. Dodatne informacije mogu biti proslije\u0111ene putem tokena.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0160to je potrebno za pokretanje Consula?<\/p>\n<p><\/p>\n<p>U prvoj opciji u na\u010dinu razvoja postavljamo zastavicu da je ovo na\u010din razvoja. Agent se pokre\u0107e kao server. I cijelu funkciju obavlja samostalno na jednom ra\u010dunalu. Povoljno, brzo i prakti\u010dki ne zahtijeva dodatna pode\u0161avanja za prvo pokretanje.<\/p>\n<p><\/p>\n<p>Drugi na\u010din je pokretanje u produkciji. Ovdje se pokretanje malo komplicira. Ako nemamo nijednu verziju konzola, moramo pokrenuti prvu ma\u0161inu u bootstrap-u, tj. ovu ma\u0161inu koja \u0107e preuzeti obaveze vo\u0111e. Di\u017eemo je, zatim podi\u017eemo drugi primjerak servera, predaju\u0107i mu informacije o tome gdje se nalazi master. Podi\u017eemo tre\u0107i. Nakon \u0161to smo podigli tri ma\u0161ine, na prvoj ma\u0161ini iz pokrenutog bootstrap-a, ponovo je pokre\u0107emo u normalnom re\u017eimu. Podaci se sinkroniziraju i po\u010detni klaster je ve\u0107 podignut. <\/p>\n<p><\/p>\n<p>Preporu\u010duje se pokretanje od tri do sedam primjeraka u re\u017eimu servera. To je zbog toga \u0161to ako se broj servera pove\u0107ava, vrijeme za sinkronizaciju informacija izme\u0111u njih se pove\u0107ava. Broj nodova treba biti neparan kako bi se osigurao kvorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kako se osiguravaju provjere zdravstvenog stanja? U direktorij za konfiguraciju Consul u obliku Json-a pi\u0161emo pravilo provjere. Prva opcija je dostupnost u ovom primjeru domene google.com. I ka\u017eemo da na intervalu od 30 sekundi treba izvr\u0161iti ovu provjeru. Tako provjeravamo da na\u0161 nod ima pristup vanjskoj mre\u017ei.<\/p>\n<p><\/p>\n<p>Druga opcija je samoprovjera. Obi\u010dnim curl-om pozivamo localhost na navedenom portu s intervalom od 10 sekundi. <\/p>\n<p><\/p>\n<p>Ove provjere se zbrajaju i ulaze u Otkri\u0107e usluga. Na temelju dostupnosti, ti nodovi ili se isklju\u010duju ili se pojavljuju na popisu dostupnih i ispravno funkcioniraju\u0107ih ma\u0161ina. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tako\u0111er, Consul pru\u017ea UI su\u010delje, koje se pokre\u0107e s posebnom zastavicom i bit \u0107e dostupno na ma\u0161ini. To omogu\u0107ava pregledavanje informacija, a tako\u0111er se mogu unositi neka pode\u0161avanja. <\/p>\n<p><\/p>\n<p>U ovom primjeru otvorena je kartica \u201eUsluga\u201d. Prikazano je da su pokrenuta tri servisa, jedan od njih je Consul. Broj izvr\u0161enih provjera. I postoje tri data centra u kojima se nalaze ma\u0161ine.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Otkri\u0107e usluga u distribuiranim sustavima na primjeru Consul. Aleksandar Sigajev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ovo je primjer kartice \"Nodes\". Vidimo da imaju slo\u017eena imena koja uklju\u010duju podatkovne centre. Tako\u0111er je prikazano koji su servisi aktivni, tj. vidimo da oznake nisu postavljene. U ovim dodatnim oznakama mo\u017eemo unijeti informacije koje programer mo\u017ee koristiti za postavljanje dodatnih parametara. <\/p>\n<p><\/p>\n<p>Tako\u0111er se mo\u017ee prenijeti informacija u Consul o stanju diskova, o prosje\u010dnoj optere\u0107enosti.<\/p>\n<p><\/p>\n<p>Pitanja<\/p>\n<p><\/p>\n<p>Pitanje: Imamo Docker kontejner, kako ga koristiti s Consul?<\/p>\n<p><\/p>\n<p>Odgovor: Za Docker kontejner postoji nekoliko pristupa. Jedan od najra\u0161irenijih je kori\u0161tenje vanjskog Docker kontejnera odgovornog za registraciju. Prilikom pokretanja proslijedimo socket Docker-a. Svi doga\u0111aji vezani za registraciju i odjavu kontejnera se upisuju u Consul.<\/p>\n<p><\/p>\n<p>Pitanje: Zna\u010di Consul sam pokre\u0107e Docker kontejner?<\/p>\n<p><\/p>\n<p>Odgovor: Ne. Mi pokre\u0107emo Docker kontejner. A pri konfiguraciji navodimo \u2013 slu\u0161aj taj socket. To je otprilike isto kao kada radimo s certifikatom i proslje\u0111ujemo informacije o tome gdje i \u0161to imamo. <\/p>\n<p><\/p>\n<p>Pitanje: Izgleda da unutar Docker kontejnera koji poku\u0161avamo povezati s Service Discovery mora postojati neka logika koja mo\u017ee dostaviti podatke Consul-u?<\/p>\n<p><\/p>\n<p>Odgovor: Ne ba\u0161. Kada se pokrene, mi putem varijanti okru\u017eenja \u0161aljemo varijable. Recimo, naziv servisa, port servisa. U registru se ta informacija slu\u0161a i upisuje u Consul.<\/p>\n<p><\/p>\n<p>Pitanje: Imam jo\u0161 jedno pitanje o UI-u. Postavili smo UI, recimo, na produkcijskom serveru. \u0160to je s sigurno\u0161\u0107u? Gdje se pohranjuju podaci? Mo\u017eemo li na neki na\u010din akumulirati podatke?<\/p>\n<p><\/p>\n<p>Odgovor: U UI-u su upravo podaci iz baze i iz Service Discovery. Lozinke postavljamo u postavkama sami. <\/p>\n<p><\/p>\n<p>Pitanje: Je li to mogu\u0107e objaviti na internetu?<\/p>\n<p><\/p>\n<p>Odgovor: Prema zadanim postavkama Consul se pokre\u0107e na localhost-u. Da bismo to objavili na internetu, potrebno je postaviti neki proxy. Za pravila sigurnosti odgovaramo sami.<\/p>\n<p><\/p>\n<p>Pitanje: Da li iz kutije daje povijesne podatke? Zanimljivo je vidjeti statistiku o Health Checks. Mo\u017ee li se dijagnosticirati problemi kada server \u010desto ispada?<\/p>\n<p><\/p>\n<p>Odgovor: Nisam siguran da li tamo postoje detalji provjera. <\/p>\n<p><\/p>\n<p>Pitanje: Nije toliko va\u017eno trenutno stanje, koliko je va\u017ena dinamika.<\/p>\n<p><\/p>\n<p>Odgovor: Za analizu \u2013 da.<\/p>\n<p><\/p>\n<p>Pitanje: Za Docker se Consul ne preporu\u010duje koristiti za Service Discovery?<\/p>\n<p><\/p>\n<p>Odgovor: Ne bih preporu\u010dio njegovo kori\u0161tenje. Cilj izvje\u0161taja je upoznati se s pojmom. Povijesno gledano, pro\u0161ao je put do prve verzije. Sada postoje cjelovitija rje\u0161enja, poput Kubernetesa, koja sve to imaju ispod haube. U okviru Kubernetesa, Service Discovery zaostaje za Etcd-om. No, nisam s njim toliko upoznat kao s Consul-om. Stoga sam se odlu\u010dio napraviti primjer Service Discovery na temelju Consul-a.<\/p>\n<p><\/p>\n<p>Pitanje: Da li shema s lider-serverom usporava pokretanje aplikacije u cjelini? I kako Consul odre\u0111uje novog lidera ako je trenutni nedostupan?<\/p>\n<p><\/p>\n<p>Odgovor: Oni imaju opisanu cijelu protokol. Ako vas zanima, mo\u017eete pro\u010ditati.<\/p>\n<p><\/p>\n<p>Pitanje: Da li Consul slu\u017ei kao potpuno funkcionalni server dok svi zahtjevi prolaze kroz njega?<\/p>\n<p><\/p>\n<p>Odgovor: On nije potpuno funkcionalni server, ve\u0107 preuzima odre\u0111enu zonu. Ta zona obi\u010dno zavr\u0161ava s service.consul. I dalje idemo logikom. Ne koristimo domene u produkciji, ve\u0107 internu infrastrukturu koja se obi\u010dno skriva iza ke\u0161iranja servera kada radimo preko DNS-a.<\/p>\n<p><\/p>\n<p>Pitanje: Dakle, ako se \u017eelimo obratiti bazi podataka, u svakom slu\u010daju \u0107emo morati konzultirati Consul da prvo prona\u0111emo tu bazu, je li tako?<\/p>\n<p><\/p>\n<p>Odgovor: Da. Kada radimo preko DNS-a, to funkcionira kao bez Consul-a kada koristimo DNS imena. Obi\u010dno moderni programi ne tra\u017ee domensko ime u svakom zahtjevu, jer kada uspostavimo vezu, sve funkcionira i u bliskoj budu\u0107nosti to ne koristimo. Ako se veza prekine, onda \u2013 da, opet pitamo gdje se nalazi baza i idemo prema njoj.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat o proizvodima Hashicorp<\/a><\/noindex> \u2014 Chat korisnika Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. O zdravstvenim provjerama. U Consul-u, kao i u Kubernetesu, koristi se isti sustav provjere stanja odr\u017eivosti servisa temeljen na statusnom kodu.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK za zdrave\n503 Servis nedostupan za bolesne<\/code><\/pre>\n<p><\/p>\n<p>Izvori:<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>Izvor: <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.4 - 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\/hr\/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.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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 u distribuiranim sustavima na primjeru Consul-a. Aleksandar Sigachev | ProHoster","description":"Predla\u017eem da se upoznate s transkripcijom izvje\u0161taja Aleksandra Sigacheva o Service Discovery-u u distribuiranim sustavima na primjeru Consul-a. Service Discovery je stvoren da s minimalnim.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}