Konfigurowanie ustawień składnika Eureka Server for Spring w usłudze Azure Container Apps
Serwer Eureka dla platformy Spring jest mechanizmem scentralizowanego odnajdywania usług dla mikrousług. Skorzystaj z poniższych wskazówek, aby dowiedzieć się, jak skonfigurować składnik Eureka Server for Spring i zarządzać nim.
Pokaż
Szczegóły poszczególnych składników można wyświetlić przy użyciu show
polecenia .
Przed uruchomieniem następującego polecenia zastąp symbole zastępcze otoczone <>
wartościami.
az containerapp env java-component eureka-server-for-spring show \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--name <JAVA_COMPONENT_NAME>
List
Listę wszystkich zarejestrowanych składników Języka Java można wyświetlić za list
pomocą polecenia .
Przed uruchomieniem następującego polecenia zastąp symbole zastępcze otoczone <>
wartościami.
az containerapp env java-component list \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP>
Unbind
Aby usunąć powiązanie z aplikacji kontenera, użyj --unbind
opcji .
Przed uruchomieniem następującego polecenia zastąp symbole zastępcze otoczone <>
wartościami.
az containerapp update \
--name <APP_NAME> \
--unbind <JAVA_COMPONENT_NAME> \
--resource-group <RESOURCE_GROUP>
Lista dozwolonych konfiguracji serwera Eureka dla platformy Spring
Poniższa lista zawiera szczegółowe informacje o obsługiwanych konfiguracjach. Więcej szczegółów można znaleźć na stronie Spring Cloud Eureka Server.
Uwaga
Prześlij bilety pomocy technicznej dla nowych żądań funkcji.
Opcje konfiguracji
Polecenie az containerapp update
używa parametru --configuration
, aby kontrolować sposób konfigurowania serwera Eureka dla platformy Spring. Można używać wielu parametrów jednocześnie, o ile są one oddzielone spacją. Więcej szczegółów można znaleźć w dokumentacji serwera Spring Cloud Eureka.
Następujące ustawienia konfiguracji są dostępne we eureka.server
właściwości konfiguracji.
Nazwa/nazwisko | opis | Domyślna wartość |
---|---|---|
eureka.server.enable-self-preservation |
Po włączeniu serwer śledzi liczbę odnawiań, które powinny zostać odebrane z serwera. W dowolnym momencie liczba odnowień spadnie poniżej wartości progowej zdefiniowanej przez wartość progową eureka.server.renewal-percent-threshold. Wartość domyślna jest ustawiona na true w oryginalnym serwerze Eureka, ale w składniku Eureka Server Java wartość domyślna jest ustawiona na false . Zobacz Ograniczenia składnika Eureka Server for Spring Java |
fałsz |
eureka.server.renewal-percent-threshold |
Minimalny procent odnowienia, który jest oczekiwany od klientów w okresie określonym przez eureka.server.renewal-threshold-update-interval-ms. Jeśli odnowienia spadną poniżej progu, wygasanie zostanie wyłączone, jeśli opcja eureka.server.enable-self-preservation jest włączona. | 0,85 |
eureka.server.renewal-threshold-update-interval-ms |
Należy zaktualizować interwał, z którym próg określony w parametrze eureka.server.renewal-percent-threshold. | 0 |
eureka.server.expected-client-renewal-interval-seconds |
Interwał, z którym klienci mają wysyłać pulsy. Wartość domyślna to 30 sekund. Jeśli klienci wysyłają pulsy z inną częstotliwością, powiedzmy, co 15 sekund, ten parametr powinien być odpowiednio dostrojony, w przeciwnym razie samozachowawanie nie będzie działać zgodnie z oczekiwaniami. | 30 |
eureka.server.response-cache-auto-expiration-in-seconds |
Pobiera czas, dla którego ładunek rejestru powinien być przechowywany w pamięci podręcznej, jeśli nie zostanie on unieważniony przez zdarzenia zmiany. | 180 |
eureka.server.response-cache-update-interval-ms |
Pobiera przedział czasu, z którym powinna zostać zaktualizowana pamięć podręczna ładunku klienta. | 0 |
eureka.server.use-read-only-response-cache |
Com.netflix.eureka.registry.ResponseCache obecnie używa strategii buforowania na dwa poziom do odpowiedzi. Pamięć podręczna readWrite z zasadami wygasania i pamięcią podręczną do odczytu, która buforuje się bez wygaśnięcia. | prawda |
eureka.server.disable-delta |
Sprawdza, czy informacje różnicowe mogą być obsługiwane klientowi, czy nie. | fałsz |
eureka.server.retention-time-in-m-s-in-delta-queue |
Uzyskaj czas buforowania informacji różnicowych dla klientów w celu pobrania wartości bez ich braku. | 0 |
eureka.server.delta-retention-timer-interval-in-ms |
Uzyskaj interwał czasu, z którym zadanie oczyszczania powinno zostać wznawiane i sprawdź, czy wygasłe informacje różnicowe. | 0 |
eureka.server.eviction-interval-timer-in-ms |
Uzyskaj interwał czasu, z którym zadanie, które wygasa wystąpienia, powinno zostać wznawiane i uruchamiane. | 60000 |
eureka.server.sync-when-timestamp-differs |
Sprawdza, czy mają być synchronizowane wystąpienia, gdy sygnatura czasowa się różni. | prawda |
eureka.server.rate-limiter-enabled |
Wskazuje, czy ogranicznik szybkości powinien być włączony, czy wyłączony. | fałsz |
eureka.server.rate-limiter-burst-size |
Ogranicznik szybkości, właściwość algorytmu zasobnika tokenu. | 10 |
eureka.server.rate-limiter-registry-fetch-average-rate |
Ogranicznik szybkości, właściwość algorytmu zasobnika tokenu. Określa średnią wymuszoną szybkość żądań. | 500 |
eureka.server.rate-limiter-privileged-clients |
Lista certyfikowanych klientów. Jest to dodatek do standardowych klientów eureka Java. | Nie dotyczy |
eureka.server.rate-limiter-throttle-standard-clients |
Określ, czy klienci standardowi limitu szybkości. W przypadku ustawienia wartości false tylko klienci standardowa będą mieć ograniczoną szybkość. | fałsz |
eureka.server.rate-limiter-full-fetch-average-rate |
Ogranicznik szybkości, właściwość algorytmu zasobnika tokenu. Określa średnią wymuszoną szybkość żądań. | 100 |
Typowe konfiguracje
- Rejestrowanie powiązanych konfiguracji
- logging.level.*
- logging.group.*
- Wszelkie inne konfiguracje w obszarze rejestrowania.* przestrzeni nazw powinny być zabronione, na przykład zapisywanie plików dziennika przy użyciu
logging.file
polecenia powinno być zabronione.
Wywoływanie między aplikacjami
W tym przykładzie pokazano, jak napisać kod Java w celu wywołania między aplikacjami zarejestrowanymi w składniku Eureka Server for Spring. Gdy aplikacje kontenerów są powiązane z usługą Eureka, komunikują się ze sobą za pośrednictwem serwera Eureka.
W przykładzie są tworzone dwie aplikacje, obiekt wywołujący i wywoływany. Obie aplikacje komunikują się między sobą przy użyciu składnika Eureka Server for Spring. Aplikacja wywoływana uwidacznia punkt końcowy wywoływany przez aplikację wywołującą.
Utwórz aplikację wywoływaną. Włącz klienta Eureka w aplikacji Spring Boot, dodając adnotację
@EnableDiscoveryClient
do klasy głównej.@SpringBootApplication @EnableDiscoveryClient public class CalleeApplication { public static void main(String[] args) { SpringApplication.run(CalleeApplication.class, args); } }
Utwórz punkt końcowy w aplikacji wywoływanej, która jest wywoływana przez aplikację wywołującą.
@RestController public class CalleeController { @GetMapping("/call") public String calledByCaller() { return "Hello from Application callee!"; } }
Ustaw nazwę aplikacji wywoływanej w pliku konfiguracji aplikacji. Na przykład application.yml.
spring.application.name=callee
Utwórz aplikację wywołującą.
Dodaj adnotację
@EnableDiscoveryClient
, aby włączyć funkcję klienta Eureka. Ponadto utwórz fasolęWebClient.Builder
z adnotacją, aby wykonywać wywołania o zrównoważonym obciążeniu@LoadBalanced
do innych usług.@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(); } }
Utwórz kontroler w aplikacji wywołującej, który używa
WebClient.Builder
obiektu do wywoływania aplikacji wywoływanej przy użyciu jej nazwy aplikacji, wywoływanej.@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); } }
Teraz masz aplikację wywołującą i wywoływaną, która komunikuje się ze sobą przy użyciu serwera Eureka dla składników Spring Java. Przed przetestowaniem /call-callee
punktu końcowego w aplikacji wywołującej upewnij się, że obie aplikacje są uruchomione i powiązane z serwerem Eureka.
Ograniczenia
Składnik Java serwera Eureka jest dostarczany z domyślną konfiguracją ,
eureka.server.enable-self-preservation
ustawioną nafalse
. Ta domyślna konfiguracja pomaga uniknąć czasów, w których wystąpienia nie są usuwane po włączeniu samozachowawczynia. Jeśli wystąpienia są usuwane zbyt wcześnie, niektóre żądania mogą być kierowane do nieistniejących wystąpień. Jeśli chcesz zmienić to ustawienie natrue
, możesz go zastąpić, ustawiając własne konfiguracje w składniku Języka Java.Serwer Eureka ma tylko jedną replikę i nie obsługuje skalowania, dzięki czemu równorzędna funkcja serwera Eureka jest niedostępna.
Pulpit nawigacyjny Eureka nie jest dostępny.