Микросервисы: как бороться с услугой саморегистрации? - PullRequest
0 голосов
/ 20 мая 2018

Я недавно работал над сайд-проектом, в котором я использую микросервисную архитектуру.Одна из основных проблем этой архитектуры заключается в том, что многоядерные микросервисы могут быть запущены в любое время, и они должны быть доступны, как только они будут запущены.

Итак, я нашел на этом сайте хорошую быструю статью http://microservices.io/patterns/self-registration.html, но это только поднимает вопрос, как микросервисы регистрируются в реестре сервисов?

  • Означает ли это, что каждый микросервис знает местоположение реестра служб?Если нет, то должен ли каждый клиент также иметь какой-то метод обнаружения служб, который находит только службы типа службы реестра?

TL; DR

Я предполагаю, что основной вопрос действительно заключается вправильный способ реализации услуги регистрации?

Спасибо!

1 Ответ

0 голосов
/ 20 мая 2018

Это будет зависеть от того, какую систему вы использовали для регистрации услуги.Для самостоятельной регистрации услуг я бы посоветовал Консул.Вы должны сделать следующее:

  1. Настроить кластер Консул с консул-клиентом на каждой из ваших машин, на которых работает микросервис, как описано в документации Консула.
  2. В каждом микросервисе:откройте HTTP-соединение с клиентом Consul, работающим на локальном хосте, через стандартный клиентский порт HTTP-консула (8500).
  3. Микросервис самостоятельно зарегистрируется в локальном консуле с использованием HTTP-соединения.
  4. Микросервис будет обнаруживать местоположение других служб, используя тот же HTTP-доступ к Консулу или используя встроенный DNS-сервер.Очевидно, что здесь может возникнуть проблема с начальной загрузкой, если у вас есть служба A, которая зависит от службы B, а служба B также зависит от службы A - в этом случае вам потребуется реализовать некоторую логику ожидания и повтора.
...