Vid utvecklingen av internetprojekt är det nödvändigt att interagera med olika tjänster, och användare hämtar data från servern, och den höga tillgängligheten av tjänstegränssnitt är särskilt viktig, särskilt inom e-handel och betalningssystem, där hög tillgänglighet också mäter om systemet är robust. När det gäller kluster är många tjänster också svåra att underhålla.
Konsulgranskning
Consul är ett öppen källkodsverktyg utvecklat i Go-språket som lanserats av HashiCorp, och som används för att genomföra tjänsteupptäckt och konfiguration av distribuerade system, med inbyggt ramverk för tjänsteregistrering och upptäckt, implementering av distributionskonsistensprotokoll, hälsokontroll, nyckel-/värdelagring och lösningar för flera datacenter, vilket är relativt enkelt att använda.
Konsultjänstupptäckt
Hur man använder Consul Service Discovery:
- Kör en Consul-agent i klientläge på varje dator, som endast ansvarar för att effektivt utbyta den senaste registreringsinformationen med Consul-klustret (som inte deltar i ledarvalet).
- Tjänstetjänsten på varje dator registrerar tjänstenamnet och URL:en för tjänsten hos den lokala konsulagenten
- När ett program som distribueras på Dator1 behöver anropa ServiceB, hämtar programmet ServiceA direkt åtkomstadressen till ServiceB från den lokala konsulagenten via tjänstenamnet och gör sedan en direkt begäran till URL:en till ServiceB.
Koden är följande:
I Startup-klassen, anropa följande:
Hälsokontroll
Hälsokontrollgränssnittet behöver bara returnera en statuskod 200 till Consul, och koden är följande:
Starta projektet, anmäl dig till tjänsten
Styrenheten kan definiera en testmetod enligt följande:
Låt oss gå till projektets bin-katalog och starta den via kommandoraden, koden är följande:
Se länken via din webbläsare:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
JSON-datan är följande:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Nod": "DESKTOP-EB7B69D", "Adress": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "konsul-nätverkssegment": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "Itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varning": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": falskt, "ServiceProxy": { "MeshGateway": {}, "Avslöja": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifieraIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Nod": "DESKTOP-EB7B69D", "Adress": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "konsul-nätverkssegment": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "Itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varning": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": falskt, "ServiceProxy": { "MeshGateway": {}, "Avslöja": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifieraIndex": 1314 }
]
Konsulservicebesök
Skapa ett nytt .NET Core-konsolprojekt med följande kod:
Jag ringer slumpmässigt den registrerade test.itsvse-tjänsten och resultatet är följande:
Slutligen, källkodsnedladdning:
Turister, om ni vill se det dolda innehållet i detta inlägg, snälla Svar |