При разработването на интернет проекти е необходимо да се взаимодейства с различни услуги, а потребителите получават данни от сървъра, а високата наличност на интерфейси за услуги е особено важна, особено в електронната търговия и платежните системи, където високата наличност също измерва дали системата е стабилна. При клъстерите много услуги също са трудни за поддържане.
Преглед на консула
Consul е инструмент с отворен код, разработен на езика Go, стартиран от HashiCorp, който се използва за реализиране на откриване на услуги и конфигуриране на разпределени системи, с вградена рамка за регистрация и откриване на услуги, имплементация на протокол за консистентност на дистрибуцията, проверка на здравето, съхранение на ключове/стойности и решения за мулти-центрове за данни, което е сравнително лесно за използване.
Откриване на консулска служба
Как да използвате Consul Service Discovery:
- Пуснете Consul агент в клиентски режим на всеки компютър, който отговаря само за ефективната размяна на най-новата регистрационна информация с Consul Cluster (без участие в избора за лидер).
- Услугата на всеки компютър регистрира името на услугата и URL адреса на услугата при местния консулски агент
- Когато програма, разположена на Computer1, трябва да се обади на ServiceB, програмата ServiceA директно получава адреса за достъп на ServiceB от локалния консул агент чрез името на услугата и след това прави заявка директно към URL адреса на ServiceB.
Кодът е следният:
В класа "Стартиране" се обадете по следния начин:
Здравен преглед
Интерфейсът за проверка на здравето трябва само да върне статус код 200 на консула, като кодът е следният:
Започнете проекта, запишете се за услугата
Контролерът може да дефинира тестов метод по следния начин:
Нека отидем в bin директорията на проекта и го стартираме през командния ред, кодът е следният:
Вижте линка през браузъра си:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
json данните са както следва:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Възел": "DESKTOP-EB7B69D", "Адрес": "127.0.0.1", "Център за данни": "dc1", "TaggedAddresses": { "LAN": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "Consul-Network-сегмент": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "тест", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Преминаване": 1, "Предупреждение": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Разкриване": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Възел": "DESKTOP-EB7B69D", "Адрес": "127.0.0.1", "Център за данни": "dc1", "TaggedAddresses": { "LAN": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "Consul-Network-сегмент": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "тест", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Преминаване": 1, "Предупреждение": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Разкриване": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Консулско обслужване
Създайте нов проект за .NET Core конзола със следния код:
Случайно се обаждам на регистрираната услуга test.itsvse и резултатът е следният:
Накрая, изтегляне на изходния код:
Туристи, ако искате да видите скритото съдържание на този пост, моля Отговор |