Pri rozvoji internetových projektov je potrebné komunikovať s rôznymi službami a používatelia získavajú dáta zo servera, pričom vysoká dostupnosť servisných rozhraní je obzvlášť dôležitá, najmä v e-commerce a platobných systémoch, kde vysoká dostupnosť tiež meria, či je systém robustný. V prípade klastrov je tiež ťažké udržiavať mnohé služby.
Recenzia Consul
Consul je open-source nástroj vyvinutý v jazyku Go, ktorý spustila spoločnosť HashiCorp, a ktorý slúži na realizáciu vyhľadávania služieb a konfigurácie distribuovaných systémov, s integrovaným rámcom pre registráciu a objavovanie služieb, implementáciou protokolu konzistentnosti distribúcie, kontrolou stavu, ukladaním kľúčov/hodnoty a riešeniami pre viaceré dátové centrá, pričom je relatívne jednoduché na používanie.
Objavenie služby konzula
Ako používať Consul Service Discovery:
- Na každom počítači spustite Consul agenta v Client Mode, ktorý je zodpovedný len za efektívnu výmenu najnovších registračných informácií s Consul Clusterom (bez účasti na voľbe lídra).
- Služba na každom počítači registruje názov služby a URL služby u miestneho konzula
- Keď program nasadený na Computer1 potrebuje zavolať ServiceB, program ServiceA priamo získa prístupovú adresu ServiceB od miestneho Consul Agenta cez názov služby a potom priamo požiada o URL ServiceB.
Kód je nasledovný:
V kurze Startup volajte nasledovne:
Zdravotná prehliadka
Rozhranie kontroly zdravia stačí vrátiť konzulovi stavový kód 200 a kód je nasledovný:
Začnite projekt, prihláste sa na službu
Regulátor môže definovať testovaciu metódu nasledovne:
Poďme do adresára bin projektu a spustíme ho cez príkazový riadok, kód je nasledovný:
Zobrazte si odkaz cez svoj prehliadač:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
Údaje json sú nasledovné:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adresa": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "segment konzulskej siete": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varovanie": 1 }, "ServiceMeta": {}, "Servisný prístav": 8083, "ServiceEnableTagOverride": nepravda, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adresa": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "segment konzulskej siete": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varovanie": 1 }, "ServiceMeta": {}, "Servisný prístav": 8082, "ServiceEnableTagOverride": nepravda, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Služba konzula
Vytvorte nový .NET Core konzolový projekt s nasledujúcim kódom:
Náhodne volám registrovanú službu test.itsvse a výsledok je nasledovný:
Nakoniec, stiahnutie zdrojového kódu:
Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím. Odpoveď |