Konfigurace nastavení pro komponentu Eureka Server for Spring v Azure Container Apps (Preview)

Eureka Server for Spring je mechanismus centralizovaného zjišťování služeb pro mikroslužby. V následujících doprovodných materiálech se dozvíte, jak nakonfigurovat a spravovat komponentu Eureka Server for Spring.

Zobrazit

Podrobnosti o jednotlivých komponentách můžete zobrazit pomocí show příkazu.

Před spuštěním následujícího příkazu nahraďte zástupné symboly ohraničené <> hodnotami.

az containerapp env java-component eureka-server-for-spring show \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME>

List

Pomocí příkazu můžete zobrazit seznam všech registrovaných komponent list Javy.

Před spuštěním následujícího příkazu nahraďte zástupné symboly ohraničené <> hodnotami.

az containerapp env java-component list \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP>

Zrušit vazbu

Pokud chcete odebrat vazbu z aplikace kontejneru, použijte tuto --unbind možnost.

Před spuštěním následujícího příkazu nahraďte zástupné symboly ohraničené <> hodnotami.

az containerapp update \
  --name <APP_NAME> \
  --unbind <JAVA_COMPONENT_NAME> \
  --resource-group <RESOURCE_GROUP>

Seznam povolených konfigurací pro server Eureka for Spring

Následující seznam obsahuje podrobnosti o podporovaných konfiguracích. Další podrobnosti najdete na Serveru Spring Cloud Eureka.

Poznámka:

Odešlete lístky podpory pro nové žádosti o funkce.

Možnosti konfigurace

Příkaz az containerapp update pomocí parametru --configuration určuje, jak je nakonfigurovaný Server Eureka for Spring. Můžete použít více parametrů najednou, pokud jsou oddělené mezerou. Další podrobnosti najdete v dokumentaci k Serveru Spring Cloud Eureka.

Pro vlastnost konfigurace jsou k dispozici eureka.server následující nastavení konfigurace.

Název Popis Default value
eureka.server.enable-self-preservation Pokud je tato možnost povolená, server sleduje počet prodloužení, které by měl ze serveru obdržet. Počet prodloužení kdykoli klesne pod procento prahové hodnoty definované hodnotou eureka.server.renewal-percent-threshold. Výchozí hodnota je nastavena na true původní server Eureka, ale v komponentě Eureka Server Java je výchozí hodnota nastavena na false. Viz Omezení komponenty Eureka Server for Spring Java false (nepravda)
eureka.server.renewal-percent-threshold Minimální procento prodlužování, která se očekává od klientů v období určeném eureka.server.renewal-threshold-update-interval-ms. Pokud prodloužení klesne pod prahovou hodnotu, jsou vypršení platnosti zakázána, pokud je povolená možnost eureka.server.enable-self-preservation. 0.85
eureka.server.renewal-threshold-update-interval-ms Interval, ve kterém je třeba aktualizovat prahovou hodnotu uvedenou v eureka.server.renewal-percent-threshold. 0
eureka.server.expected-client-renewal-interval-seconds Interval, kdy mají klienti odesílat prezenčních signálů. Výchozí hodnota je 30 sekund. Pokud klienti odesílají prezenční signály s různou frekvencí, například každých 15 sekund, měl by být tento parametr odpovídajícím způsobem vyladěn, jinak nebude samoobslužné zachování fungovat podle očekávání. 30
eureka.server.response-cache-auto-expiration-in-seconds Získá čas, pro který by se datová část registru měla uchovávat v mezipaměti, pokud není zneplatněna událostmi změn. 180
eureka.server.response-cache-update-interval-ms Získá časový interval, pomocí kterého se má aktualizovat mezipaměť datové části klienta. 0
eureka.server.use-read-only-response-cache Com.netflix.eureka.registry.ResponseCache v současné době používá pro odpovědi strategii ukládání do mezipaměti dvě úrovně. Mezipaměť readWrite se zásadami vypršení platnosti a jen pro čtení, která se ukládá do mezipaměti bez vypršení platnosti. true
eureka.server.disable-delta Zkontroluje, jestli se rozdílové informace dají obsluhovat klientovi nebo ne. false (nepravda)
eureka.server.retention-time-in-m-s-in-delta-queue Získejte čas, po který by se měly informace o rozdílu ukládat do mezipaměti pro klienty, aby načetly hodnotu, aniž by jí chyběly. 0
eureka.server.delta-retention-timer-interval-in-ms Získejte časový interval, ve kterém se má úloha vyčištění probudit a zkontrolovat, jestli vypršela platnost rozdílových informací. 0
eureka.server.eviction-interval-timer-in-ms Získejte časový interval, ve kterém má úloha, u které vyprší platnost instancí, probudit a spustit. 60000
eureka.server.sync-when-timestamp-differs Zkontroluje, jestli se mají synchronizovat instance, když se časové razítko liší. true
eureka.server.rate-limiter-enabled Určuje, jestli má být omezovač rychlosti povolený nebo zakázaný. false (nepravda)
eureka.server.rate-limiter-burst-size Omezovač rychlosti, vlastnost algoritmu kbelíku tokenů 10
eureka.server.rate-limiter-registry-fetch-average-rate Omezovač rychlosti, vlastnost algoritmu kbelíku tokenů Určuje průměrnou míru vynucených požadavků. 500
eureka.server.rate-limiter-privileged-clients Seznam certifikovaných klientů To je kromě standardních klientů Eureka Java.
eureka.server.rate-limiter-throttle-standard-clients Uveďte, jestli jsou klienti limitu rychlosti standardní. Pokud je nastavená hodnota false, omezí se pouze nestandardní klienti. false (nepravda)
eureka.server.rate-limiter-full-fetch-average-rate Omezovač rychlosti, vlastnost algoritmu kbelíku tokenů Určuje průměrnou míru vynucených požadavků. 100

Běžné konfigurace

  • protokolování souvisejících konfigurací
    • logging.level.*
    • logging.group.*
    • Všechny ostatní konfigurace v rámci protokolování.* Obor názvů by měl být zakázán, například zápis souborů protokolu pomocí logging.file by měl být zakázáno.

Volání mezi aplikacemi

Tento příklad ukazuje, jak napsat kód Java pro volání mezi aplikacemi registrovanými komponentou Eureka Server for Spring. Když jsou kontejnerové aplikace svázané s Eurekou, komunikují mezi sebou prostřednictvím serveru Eureka.

Příklad vytvoří dvě aplikace, volající a volaný. Obě aplikace vzájemně komunikují pomocí komponenty Eureka Server for Spring. Volaná aplikace zveřejňuje koncový bod, který volá aplikace volajícího.

  1. Vytvořte volanou aplikaci. Povolte klienta Eureka v aplikaci Spring Boot přidáním poznámky @EnableDiscoveryClient do hlavní třídy.

    @SpringBootApplication
    @EnableDiscoveryClient
    public class CalleeApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CalleeApplication.class, args);
    	}
    }
    
  2. V volané aplikaci vytvořte koncový bod, který volá volající aplikace.

    @RestController
    public class CalleeController {
    
        @GetMapping("/call")
        public String calledByCaller() {
            return "Hello from Application callee!";
        }
    }
    
  3. V konfiguračním souboru aplikace nastavte název volané aplikace. Například application.yml.

    spring.application.name=callee
    
  4. Vytvořte aplikaci volajícího.

    Přidáním poznámky @EnableDiscoveryClient povolíte funkci klienta Eureka. Vytvořte také fan s poznámkou WebClient.Builder @LoadBalanced pro provádění volání s vyrovnáváním zatížení do jiných služeb.

    @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. V aplikaci volajícího vytvořte kontroler, který používá WebClient.Builder volání volané aplikace pomocí názvu aplikace volané.

    @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);
        }
    }
    

Teď máte volající a volanou aplikaci, která mezi sebou komunikuje pomocí komponenty Eureka Server for Spring Java. Před testováním koncového /call-callee bodu v aplikaci volajícího se ujistěte, že jsou spuštěné obě aplikace, a vytvořte vazbu se serverem Eureka.

Omezení

  • Komponenta Java serveru Eureka se dodává s výchozí konfigurací , eureka.server.enable-self-preservationnastavenou na false. Tato výchozí konfigurace pomáhá vyhnout se časům, kdy se instance neodstraní po povolení samoobslužného zachování. Pokud jsou instance odstraněny příliš brzy, můžou být některé požadavky směrovány na neexistující instance. Pokud chcete toto nastavení změnit na true, můžete ho přepsat nastavením vlastních konfigurací v komponentě Java.

  • Server Eureka má pouze jednu repliku a nepodporuje škálování, což znepřístupňuje funkci serveru Eureka peer.

  • Řídicí panel Eureka není k dispozici.

Další kroky