2016-05-10 5 views
3

Насколько я могу судить, «сервисное обнаружение» означает способ для клиента узнать о сервере (или кластере серверов), к которому он хочет подключиться.Что такое сервисное обнаружение и зачем оно вам нужно?

Я создал веб-приложения, которые взаимодействуют с другими внутренними процессами, используя протоколы, такие как HTTP и AMQP. В них каждый клиент имеет конфигурационный файл, содержащий имя хоста или любую другую информацию, необходимую для подключения к серверу, который устанавливается во время развертывания с помощью инструмента конфигурации, такого как Ansible. Это просто и, кажется, работает очень хорошо.

Является ли обнаружение службы альтернативой просто помещению информации о сервере в конфигурационный файл клиента? Если да, то почему это лучше? Если нет, то какую проблему он решает?

+0

Разве ваше использование [тег: микросервисы] не отвечает на этот вопрос? – jonrsharpe

+0

Нет, я не понимаю, что такое сервисное обнаружение, и если это то, что я думаю, я не знаю, зачем нужны микросервисы. – gesgsklw

ответ

3

Давайте начнем с рассмотрения какой сервис-открытие - вот хорошее объяснение: https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/ (эта ссылка должна в значительной степени прояснить этот вопрос просил)

А вот пример того, как она используется на практике: Предположим, вы имеют службу B, которая используется службой A. Служба B (как и большинство служб в SOA) на самом деле представляет собой кластер приложений типа B. Для обслуживания A требуется использовать один из узлов кластера B, но кластер из B-узлов - динамический. то есть узлы B создаются и завершаются в зависимости от нагрузки на общую службу B. Теперь мы хотели бы, чтобы служба A связывалась с живым узлом B каждый раз, когда ему нужно было использовать службу B. Для этого мы будем использовать инструмент обнаружения сервисов, чтобы предоставить нам в любой момент времени, адрес одного из живых узлов B.

Итак, пытаясь ответить на ваши вышеуказанные вопросы, помещая информацию о конечных точках (в частности, адрес конечной точки) в качестве статической конфигурации в файле конфигурации, который считывается при запуске службы A, не даст вам динамики вы хотите, чтобы конечные точки службы B могли постоянно меняться.

Смежные вопросы