Bij de ontwikkeling van internetprojecten is het noodzakelijk om met verschillende diensten te communiceren, en gebruikers verkrijgen gegevens van de server, en de hoge beschikbaarheid van serviceinterfaces is bijzonder belangrijk, vooral in e-commerce- en betalingssystemen, waar hoge beschikbaarheid ook meet of het systeem robuust is. In het geval van clusters zijn veel diensten ook moeilijk te onderhouden.
Consul beoordeling
Consul is een open-source tool ontwikkeld in de Go-taal, gelanceerd door HashiCorp, die wordt gebruikt om serviceontdekking en configuratie van gedistribueerde systemen te realiseren, met een ingebouwd serviceregistratie- en ontdekkingskader, implementatie van distributieconsistentieprotocol, gezondheidscontrole, sleutel-/waardeopslag en multi-datacenteroplossingen, wat relatief eenvoudig te gebruiken is.
Consul dienstvondst
Hoe gebruik je Consul Service Discovery:
- Draai een Consul-agent in Clientmodus op elke computer, die alleen verantwoordelijk is voor het efficiënt uitwisselen van de nieuwste registratiegegevens met het Consul Cluster (zonder deel te nemen aan de leiderverkiezing).
- De servicedienst registreert op elke computer de servicenaam en de URL van de dienst bij de lokale consulagent
- Wanneer een programma dat op Computer1 is ingezet ServiceB moet oproepen, verkrijgt het programma ServiceA direct het toegangsadres van ServiceB van de lokale Consul Agent via de servicenaam, en doet vervolgens direct een verzoek naar de URL van ServiceB.
De code is als volgt:
In de Startup-klasse roep je als volgt:
Gezondheidscontrole
De health check-interface hoeft alleen een 200-statuscode terug te geven aan Consul, en de code is als volgt:
Begin het project, meld je aan voor de dienst
De controller kan een testmethode als volgt definiëren:
Laten we naar de bin-map van het project gaan en deze via de opdrachtregel starten, de code is als volgt:
Bekijk de link via je browser:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
De json-gegevens zijn als volgt:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adres": "127.0.0.1", "Datacenter": "dc1", "GetagdeAdressen": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "consul-netwerk-segment": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "Itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Waarschuwing": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": onwaar, "ServiceProxy": { "MeshGateway": {}, "Onthullen": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "WijzigenIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adres": "127.0.0.1", "Datacenter": "dc1", "GetagdeAdressen": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "consul-netwerk-segment": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "Itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Waarschuwing": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": onwaar, "ServiceProxy": { "MeshGateway": {}, "Onthullen": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "WijzigenIndex": 1314 }
]
Consul servicebezoek
Maak een nieuw .NET Core-consoleproject aan met de volgende code:
Ik bel willekeurig de geregistreerde test.itsvse-dienst en het resultaat is als volgt:
Tot slot, broncode downloaden:
Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieft Antwoord |