Udostępnij za pośrednictwem


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ą.

  1. 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);
    	}
    }
    
  2. 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!";
        }
    }
    
  3. Ustaw nazwę aplikacji wywoływanej w pliku konfiguracji aplikacji. Na przykład application.yml.

    spring.application.name=callee
    
  4. 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();
    	}
    }
    
  5. 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-preservationustawioną na false. 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 na true, 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.

Następne kroki