Настройка параметров компонента Eureka Server for Spring в приложениях контейнеров Azure (предварительная версия)
Eureka Server for Spring — это механизм централизованного обнаружения служб для микрослужб. Используйте следующее руководство, чтобы узнать, как настроить компонент Eureka Server для Spring и управлять ими.
Показать
Сведения о отдельном компоненте можно просмотреть по имени с помощью show
команды.
Перед выполнением следующей команды замените заполнители, окруженные значениями <>
.
az containerapp env java-component eureka-server-for-spring show \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--name <JAVA_COMPONENT_NAME>
List
Вы можете перечислить все зарегистрированные компоненты Java с помощью list
команды.
Перед выполнением следующей команды замените заполнители, окруженные значениями <>
.
az containerapp env java-component list \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP>
Unbind
Чтобы удалить привязку из приложения-контейнера, используйте --unbind
этот параметр.
Перед выполнением следующей команды замените заполнители, окруженные значениями <>
.
az containerapp update \
--name <APP_NAME> \
--unbind <JAVA_COMPONENT_NAME> \
--resource-group <RESOURCE_GROUP>
Список разрешенных конфигураций для сервера Eureka для Spring
Следующие сведения о поддерживаемых конфигурациях списка. Дополнительные сведения см. в Spring Cloud Eureka Server.
Примечание.
Отправьте запросы в службу поддержки для новых запросов функций.
Варианты конфигурации
Команда az containerapp update
использует --configuration
параметр для управления настройкой сервера Eureka для Spring. Вы можете одновременно использовать несколько параметров, если они разделены пробелом. Дополнительные сведения см. в документации spring Cloud Eureka Server .
Следующие параметры конфигурации доступны в свойстве eureka.server
конфигурации.
Имя | Описание: | Default value |
---|---|---|
eureka.server.enable-self-preservation |
Если этот параметр включен, сервер отслеживает количество обновлений, которые он должен получать от сервера. В любое время число обновлений снижается ниже порогового процента, определенного eureka.server.renewal-percent-threshold. Значение по умолчанию задано true на исходном сервере Eureka, но в компоненте Java для сервера Eureka значение по умолчанию имеет false значение. См . ограничения компонента Eureka Server для Spring Java |
false |
eureka.server.renewal-percent-threshold |
Минимальный процент обновлений, ожидаемых от клиентов в период, указанный eureka.server.update-threshold-update-update-interval-ms. Если продление опускается ниже порогового значения, срок действия отключается, если включена самосохранение eureka.server.enable-self-preservation. | 0,85 |
eureka.server.renewal-threshold-update-interval-ms |
Интервал, с которым необходимо обновить пороговое значение, указанное в eureka.server.renewal-percent-threshold. | 0 |
eureka.server.expected-client-renewal-interval-seconds |
Интервал, с которыми клиенты должны отправлять пульс. Значение по умолчанию — 30 секунд. Если клиенты отправляют пульс с другой частотой, скажем, каждые 15 секунд, этот параметр должен быть настроен соответствующим образом, в противном случае самосохранение не будет работать должным образом. | 30 |
eureka.server.response-cache-auto-expiration-in-seconds |
Возвращает время, для которого полезные данные реестра должны храниться в кэше, если оно не является недействительным при событиях изменения. | 180 |
eureka.server.response-cache-update-interval-ms |
Возвращает интервал времени, с помощью которого необходимо обновить кэш полезных данных клиента. | 0 |
eureka.server.use-read-only-response-cache |
Com.netflix.eureka.registry.ResponseCache в настоящее время использует стратегию кэширования двух уровней для ответов. Кэш readWrite с политикой истечения срока действия и кэш чтения, который кэширует без истечения срока действия. | true |
eureka.server.disable-delta |
Проверяет, может ли разностная информация обслуживаться клиенту или нет. | false |
eureka.server.retention-time-in-m-s-in-delta-queue |
Получите время, для которого необходимо кэшировать разностные сведения для клиентов, чтобы получить значение, не пропуская его. | 0 |
eureka.server.delta-retention-timer-interval-in-ms |
Получите интервал времени, с помощью которого задача очистки должна проснуться и проверка для сведений о разностных значениях с истекшим сроком действия. | 0 |
eureka.server.eviction-interval-timer-in-ms |
Получите интервал времени, с которым срок действия задачи, срок действия которой истекает, должен проснуться и запуститься. | 60 000 |
eureka.server.sync-when-timestamp-differs |
Проверяет, следует ли синхронизировать экземпляры, если метка времени отличается. | true |
eureka.server.rate-limiter-enabled |
Указывает, следует ли включить или отключить ограничение скорости. | false |
eureka.server.rate-limiter-burst-size |
Ограничение скорости, свойство алгоритма контейнера маркеров. | 10 |
eureka.server.rate-limiter-registry-fetch-average-rate |
Ограничение скорости, свойство алгоритма контейнера маркеров. Указывает среднюю частоту принудительного запроса. | 500 |
eureka.server.rate-limiter-privileged-clients |
Список сертифицированных клиентов. Это в дополнение к стандартным клиентам Java eureka. | Н/П |
eureka.server.rate-limiter-throttle-standard-clients |
Укажите, является ли ограничение скорости стандартными клиентами. Если задано значение false, то только клиенты, не являющиеся стандартными, будут ограничены. | false |
eureka.server.rate-limiter-full-fetch-average-rate |
Ограничение скорости, свойство алгоритма контейнера маркеров. Указывает среднюю частоту принудительного запроса. | 100 |
Распространенные способы конфигурирования
- Конфигурации, связанные с ведением журнала
- logging.level.*
- logging.group.*
- Любые другие конфигурации в пространстве имен log.* должны быть запрещены, например написание файлов журналов с помощью
logging.file
запрета.
Вызов между приложениями
В этом примере показано, как писать код Java для вызова между приложениями, зарегистрированными в компоненте Eureka Server для Spring. Когда приложения-контейнеры привязаны к Eureka, они взаимодействуют друг с другом через сервер Eureka.
В этом примере создаются два приложения, вызывающий объект и вызывающий объект. Оба приложения взаимодействуют друг с другом с помощью компонента Eureka Server для Spring. Вызываемое приложение предоставляет конечную точку, вызываемую вызывающим приложением.
Создайте вызываемое приложение. Включите клиент Eureka в приложении Spring Boot, добавив заметку
@EnableDiscoveryClient
в основной класс.@SpringBootApplication @EnableDiscoveryClient public class CalleeApplication { public static void main(String[] args) { SpringApplication.run(CalleeApplication.class, args); } }
Создайте конечную точку в вызываемом приложении вызываемого объекта.
@RestController public class CalleeController { @GetMapping("/call") public String calledByCaller() { return "Hello from Application callee!"; } }
Задайте имя вызываемого приложения в файле конфигурации приложения. Например, application.yml.
spring.application.name=callee
Создайте вызывающее приложение.
Добавьте заметку
@EnableDiscoveryClient
, чтобы включить функциональность клиента Eureka. Кроме того, создайтеWebClient.Builder
боб с@LoadBalanced
заметкой для выполнения вызовов с балансировкой нагрузки для других служб.@SpringBootApplication @EnableDiscoveryClient public class CallerApplication { public static void main(String[] args) { SpringApplication.run(CallerApplication.class, args); } @Bean @LoadBalanced public WebClient.Builder loadBalancedWebClientBuilder() { return WebClient.builder(); } }
Создайте контроллер в вызывающем приложении, которое использует
WebClient.Builder
для вызова вызываемого приложения с помощью его имени приложения, вызываемого абонента.@RestController public class CallerController { @Autowired private WebClient.Builder webClientBuilder; @GetMapping("/call-callee") public Mono<String> callCallee() { return webClientBuilder.build() .get() .uri("http://callee/call") .retrieve() .bodyToMono(String.class); } }
Теперь у вас есть вызывающее и вызываемое приложение, которое взаимодействует друг с другом с помощью компонентов Eureka Server для Spring Java. Убедитесь, что оба приложения запущены и привязаны к серверу Eureka перед тестированием /call-callee
конечной точки в вызывающем приложении.
Ограничения
Компонент Java для eureka Server поставляется с конфигурацией по умолчанию,
eureka.server.enable-self-preservation
для параметра "Задано значениеfalse
". Эта конфигурация по умолчанию помогает избежать времени, когда экземпляры не удаляются после включения самосохранения. Если экземпляры удаляются слишком рано, некоторые запросы могут быть направлены на несуществующие экземпляры. Если вы хотите изменить этот параметрtrue
, его можно перезаписать, задав собственные конфигурации в компоненте Java.Сервер Eureka имеет только одну реплика и не поддерживает масштабирование, что делает одноранговую функцию сервера Eureka недоступной.
Панель мониторинга Eureka недоступна.