Při vývoji internetových projektů je nutné komunikovat s různými službami a uživatelé získávají data ze serveru, přičemž vysoká dostupnost rozhraní služeb je zvláště důležitá, zejména v e-commerce a platebních systémech, kde vysoká dostupnost také měří, zda je systém robustní. V případě clusterů je také obtížné udržovat mnoho služeb.
Recenze Consul
Consul je open-source nástroj vyvinutý v jazyce Go, který spustil HashiCorp, a slouží k realizaci vyhledávání služeb a konfigurace distribuovaných systémů, s vestavěným rámcem pro registraci a objevování služeb, implementací protokolu pro konzistenci distribuce, kontrolou stavu, úložištěm klíčů/hodnot a řešeními pro multi-datová centra, což je poměrně jednoduché na používání.
Objev konzulské služby
Jak používat Consul Service Discovery:
- Na každém počítači spusťte konzulského agenta v klientském režimu, který je zodpovědný pouze za efektivní výměnu nejnovějších registračních informací s konzulským klastrom (neúčastní se volby lídra).
- Služba na každém počítači registruje název služby a URL služby u místního konzula
- Když program nasazený na Computer1 potřebuje zavolat ServiceB, program ServiceA získá přístupovou adresu ServiceB přímo od místního konzula přes název služby a poté přímo požádá o URL ServiceB.
Kód je následující:
V kurzu Startup volejte následovně:
Zdravotní prohlídka
Rozhraní pro kontrolu stavu potřebuje vrátit konzulu pouze stav 200, a kód je následující:
Začněte projekt, přihlaste se k odběru služby
Regulátor může definovat testovací metodu následovně:
Pojďme do adresáře bin projektu a spustíme ho přes příkazový řádek, kód je následující:
Zobrazte odkaz ve svém prohlížeči:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
Data json jsou následující:
[ { "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 konzulské sítě": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varování": 1 }, "ServiceMeta": {}, "Servisní přístav": 8083, "ServiceEnableTagOverride": nepravda, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifikovatIndex": 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 konzulské sítě": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Varování": 1 }, "ServiceMeta": {}, "Servisní přístav": 8082, "ServiceEnableTagOverride": nepravda, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Volání konzula
Vytvořte nový .NET Core konzolový projekt s následujícím kódem:
Náhodně volám do registrované služby test.itsvse a výsledek je následující:
Nakonec ke stažení zdrojového kódu:
Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosím Odpověď |