Что такое сервис Eureka, клиент Eureka, экземпляр Eureka и сервер Eureka

Я изучаю весеннее облако Netflix, прочитав эту статью, однако в этой статье я начал путаться по другой терминологии:

  1. Эврика. Для меня это обычная услуга (в частности, Microservice), работающая на уникальном uri (т.е. Обслуживание на каждый uri). Скажем, localhost:12000. Он может быть зарегистрирован на сервере Eureka.

  2. Клиент Eureka. То же самое, что и сервис Eureka???

  3. Сервер Eureka. Насколько я понимаю, это сервер, который мы можем проверять, обнаруживать и управлять связью микросервисов, которые мы создали, обычно работая на localhost:8761

  4. Эврика. Я смущен тем, о чем он говорил, так же, как клиент Eureka?

Также в этой статье он упоминает eureka.client в config и EurekaClient в API Netflix, ссылаются ли они на одно и то же?

Пожалуйста, скажите мне, что означают эти четыре слова и исправляют меня, если я ошибаюсь. Спасибо!

================================== UPDATE =============== ===================

В статье сказано:

@EnableEurekaClient делает приложение как в "экземпляре" Eureka (т. @EnableEurekaClient Регистрируется), так и в "клиенте" (т.е. Может запрашивать реестр для поиска других сервисов).

Таким образом, похоже, что экземпляр Eureka аналогичен сервису Eureka. Хотя Eureka Client является специальным экземпляром, который может запрашивать другие экземпляры/службы.

Ответ 1

Я бы сказал, что эти термины используются несколько неоднозначно, вот что, я думаю, они имеют в виду в статье:

  • Клиент Eureka: это может быть микросервис, который готов к работе, поэтому он регистрируется на сервере Eureka, например, API для некоторого приложения или какое-либо приложение, которое отправляется на сервер, и запрашивает указания для конкретного микросервиса.

  • Экземпляр Eureka: один экземпляр микросервиса (вы можете добавить больше экземпляров того же микросервиса, что и ваш груз, т.е. горизонтальное масштабирование).

  • Служба Eureka: выглядит, когда вы регистрируете микросервис в качестве клиента Eureka, вы получаете услугу Eureka, зарегистрированную по ID.

  • Сервер Eureka: сервер, на котором микросервисы могут регистрироваться, чтобы другие могли их обнаружить.


О обновлении, которое вы добавили:

Eureka Instance не следует путать с Eureka Service. Служба Eureka относится к группе экземпляров микросервисов, зарегистрированных на сервере Eureka, которые предоставляют одну и ту же услугу.

Об этой аннотации @EnableEurekaClient она сообщает следующее структуре: hi there Spring, я являюсь экземпляром микросервиса X, поэтому, пожалуйста, зарегистрируйте меня на сервере Eureka (с eureka.instance.*), И я также хочу открыть другие службы, поэтому создайте для меня необходимый клиентский клиент для обнаружения (с свойствами eureka.client.*).

Таким образом, эта аннотация, названная @EnableEureka Client, делает обе вещи, возможно, там, где возникает путаница. Но экземпляр и клиент - это действительно разные понятия, хотя в статье они используются несколько взаимозаменяемо.

Ответ 2

Определения


Сервер Eureka

Сервер обнаружения. Он содержит реестр служб и REST api, которые могут использоваться для регистрации службы, отмены регистрации службы и обнаружения местоположения других служб.

Eureka Service

Любое приложение, которое можно найти в реестре сервера Eureka и доступно для других. Служба имеет логический идентификатор, иногда называемый VIP, иногда называемый "служебным идентификатором", который может ссылаться на один или несколько экземпляров одного и того же приложения.

Eureka Instance

Любое приложение, которое регистрируется с сервером Eureka, которое будет обнаружено другими пользователями

Клиент Eureka

Любое приложение, которое может обнаружить службы

Вопросов


Как приложение может быть как экземпляром Eureka, так и клиентом Eureka?

Приложения часто должны быть доступны для использования другими (поэтому они являются экземпляром), и в то же время им необходимо открыть другие службы (так они являются клиентом).

Клиент Eureka должен быть экземпляром Eureka?

Нет. Иногда приложение не имеет ничего предложить и является только абонентом других сервисов. Через конфигурацию (eureka.client.register-with-eureka=false) вы можете сказать, что она не регистрируется в качестве экземпляра. Поэтому он является только клиентом Eureka, поскольку он обнаруживает только другие сервисы.

Ответ 3

enter image description here

Я думаю, что они похожи на эту картинку.

  1. Клиент Eureka регистрируется на сервере Eureka.
  2. Поскольку Eureka Instance регистрируется на Eureka Server, он является клиентом.
  3. Поскольку сервис Eureka предлагает api другим, поэтому его могут обнаружить другие, поэтому это экземпляр.

Ответ 4

Возьмем пример.

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

Сервер Eureka: Turbine запрашивает сервер Eureka для доступа к реестру. Используя реестр, он определяет все участвующие микросервисы, их конечную точку и многое другое.

Служба Eureka: информация, предоставляемая сервером Euerka для турбины (список участников Micro Services), является услугой. Сервер может предоставлять несколько сервисов.

Eureka Instance Все микросервисы, которые хотят, чтобы их метрики были агрегированы, являются экземплярами Eureka. Экземпляры не только могут запрашивать реестр, но также регистрируются, де-регистры, обеспечивают прослушивание, чтобы оставаться зарегистрированным и т.д.

Клиент Eureka Client Turbine является клиентом. Он запрашивает только реестр для определения запущенных экземпляров Micro Services.