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.
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); } }
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!"; } }
V konfiguračním souboru aplikace nastavte název volané aplikace. Například application.yml.
spring.application.name=callee
Vytvořte aplikaci volajícího.
Přidáním poznámky
@EnableDiscoveryClient
povolíte funkci klienta Eureka. Vytvořte také fan s poznámkouWebClient.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(); } }
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-preservation
nastavenou nafalse
. 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 natrue
, 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.