Как лента получает список доступных экземпляров службы

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


person Prashant    schedule 10.08.2018    source источник


Ответы (2)


Spring Cloud Ribbon обращается к клиенту обнаружения для получения информации о запущенных экземплярах данной службы. Клиент Discovery хранит в памяти кэш регистраций eureka, чтобы ускорить поиск.

Вы можете ознакомиться с документацией Spring Cloud Netflix для получения дополнительной информации:

https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-eureka-server.html

Сервер Eureka не имеет внутреннего хранилища, но все экземпляры службы в реестре должны отправлять тактовые импульсы, чтобы поддерживать свои регистрации в актуальном состоянии (чтобы это можно было сделать в памяти). У клиентов также есть кеш-память регистраций Eureka (поэтому им не нужно обращаться к реестру для каждого запроса к службе).

Кроме того, для ленты с Eureka: https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#_using_ribbon_with_eureka

Когда Eureka используется в сочетании с Ribbon (то есть оба находятся в пути к классам), ленточкаServerList переопределяется расширением DiscoveryEnabledNIWSServerList, которое заполняет список серверов из Eureka.

Клиенты из любой зоны могут просматривать информацию реестра (происходит каждые 30 секунд), чтобы найти свои службы (которые могут находиться в любой зоне) и совершать удаленные вызовы. Для получения дополнительной информации посетите официальную документацию Netflix Eureka.

person Munish Chandel    schedule 10.08.2018
comment
Когда клиент обновляет кэш памяти регистраций eureka? - person Prashant; 10.08.2018
comment
Клиенты из любой зоны могут просматривать информацию реестра (происходит каждые 30 секунд), чтобы найти свои службы (которые могут находиться в любой зоне) и совершать удаленные вызовы. Для получения дополнительной информации посетите официальную документацию Netflix Eureka. - person Munish Chandel; 10.08.2018
comment
В этой статье (не моей) кратко описывается работа сервера и клиента eureka: dzone. ком/статьи/микросервисы-связь-эврика-клиент - person Munish Chandel; 10.08.2018

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

вы можете поискать это:ScheduledThreadPoolExecutor

интервал по умолчанию для запуска задачи составляет 30 секунд, и вы можете изменить его с помощью конфигурации:

your-service-name:
  ribbon:
    ServerListRefreshInterval: 200(the time you want to set in ms)
person Bruce    schedule 02.09.2019