Dela via


Konfigurera inställningar för Eureka Server for Spring-komponenten i Azure Container Apps

Eureka Server for Spring är en mekanism för centraliserad tjänstidentifiering för mikrotjänster. Använd följande vägledning för att lära dig hur du konfigurerar och hanterar din Eureka Server for Spring-komponent.

Visa

Du kan visa information om en enskild komponent efter namn med hjälp show av kommandot .

Innan du kör följande kommando ersätter du platshållarna som omges av <> med dina värden.

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

List

Du kan visa en lista över alla registrerade Java-komponenter med hjälp av list kommandot .

Innan du kör följande kommando ersätter du platshållarna som omges av <> med dina värden.

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

Ta bort bindning

Om du vill ta bort en bindning från en containerapp använder du alternativet --unbind .

Innan du kör följande kommando ersätter du platshållarna som omges av <> med dina värden.

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

Lista över tillåtna konfigurationer för Din Eureka-server för Spring

Följande lista innehåller information om konfigurationer som stöds. Mer information finns i Spring Cloud Eureka Server.

Kommentar

Skicka supportärenden för nya funktionsförfrågningar.

Konfigurationsalternativ

Kommandot az containerapp update använder parametern --configuration för att styra hur Eureka-servern för Spring konfigureras. Du kan använda flera parametrar samtidigt så länge de avgränsas med ett blanksteg. Mer information finns i Spring Cloud Eureka Server-dokument .

Följande konfigurationsinställningar är tillgängliga för konfigurationsegenskapen eureka.server .

Name Beskrivning Standardvärde
eureka.server.enable-self-preservation När den är aktiverad håller servern reda på hur många förnyelser den ska ta emot från servern. När som helst sjunker antalet förnyelser under tröskelvärdet enligt definitionen i eureka.server.renewal-percent-threshold. Standardvärdet anges till true i den ursprungliga Eureka-servern, men i Komponenten Eureka Server Java är standardvärdet inställt på false. Se Begränsningar för Komponenten Eureka Server for Spring Java falskt
eureka.server.renewal-percent-threshold Den minsta procentandel av förnyelser som förväntas från klienterna under den period som anges av eureka.server.renewal-threshold-update-interval-ms. Om förnyelserna sjunker under tröskelvärdet inaktiveras förfallodatumen om eureka.server.enable-self-preservation är aktiverat. 0,85
eureka.server.renewal-threshold-update-interval-ms Det intervall med vilket tröskelvärdet som anges i eureka.server.renewal-percent-threshold måste uppdateras. 0
eureka.server.expected-client-renewal-interval-seconds Det intervall med vilket klienter förväntas skicka sina pulsslag. Standardvärdet är 30 sekunder. Om klienter skickar pulsslag med olika frekvens, till exempel var 15:e sekund, bör den här parametern justeras i enlighet med detta, annars fungerar inte självbevarande som förväntat. 30
eureka.server.response-cache-auto-expiration-in-seconds Hämtar den tid för vilken registernyttolasten ska sparas i cacheminnet om den inte har ogiltigförklarats av ändringshändelser. 180
eureka.server.response-cache-update-interval-ms Hämtar tidsintervallet som nyttolastcachen för klienten ska uppdateras med. 0
eureka.server.use-read-only-response-cache Com.netflix.eureka.registry.ResponseCache använder för närvarande en cachelagringsstrategi på två nivåer för svar. En readWrite-cache med en förfalloprincip och en skrivskyddad cache som cachelagrar utan förfallodatum. true
eureka.server.disable-delta Kontrollerar om deltainformationen kan hanteras till klienten eller inte. falskt
eureka.server.retention-time-in-m-s-in-delta-queue Hämta den tid för vilken deltainformationen ska cachelagras så att klienterna kan hämta värdet utan att det saknas. 0
eureka.server.delta-retention-timer-interval-in-ms Hämta tidsintervallet med vilket rensningsaktiviteten ska aktiveras och kontrollera om deltainformationen har upphört att gälla. 0
eureka.server.eviction-interval-timer-in-ms Hämta tidsintervallet som aktiviteten som upphör att gälla ska aktiveras och köras. 60000
eureka.server.sync-when-timestamp-differs Kontrollerar om tidsstämpeln ska synkroniseras när tidsstämpeln skiljer sig åt. true
eureka.server.rate-limiter-enabled Anger om hastighetsbegränsningen ska aktiveras eller inaktiveras. falskt
eureka.server.rate-limiter-burst-size Rate limiter, token bucket algorithm property. 10
eureka.server.rate-limiter-registry-fetch-average-rate Rate limiter, token bucket algorithm property. Anger den genomsnittliga tvingande begärandefrekvensen. 500
eureka.server.rate-limiter-privileged-clients En lista över certifierade klienter. Detta är utöver standard-eureka Java-klienter. Ej tillämpligt
eureka.server.rate-limiter-throttle-standard-clients Ange om standardklienter för hastighetsbegränsning. Om värdet är falskt begränsas endast icke-standardklienter. falskt
eureka.server.rate-limiter-full-fetch-average-rate Rate limiter, token bucket algorithm property. Anger den genomsnittliga tvingande begärandefrekvensen. 100

Vanliga konfigurationer

  • loggningsrelaterade konfigurationer
    • logging.level.*
    • logging.group.*
    • Andra konfigurationer under loggning.* namnrymd bör förbjudas, till exempel bör det vara förbjudet att skriva loggfiler med hjälp logging.file av.

Samtal mellan program

Det här exemplet visar hur du skriver Java-kod för att anropa mellan program som registrerats med Eureka Server for Spring-komponenten. När containerappar är bundna till Eureka kommunicerar de med varandra via Eureka-servern.

Exemplet skapar två program, en anropare och en anropare. Båda programmen kommunicerar med varandra med hjälp av Eureka Server for Spring-komponenten. Anroparprogrammet exponerar en slutpunkt som anropas av anroparprogrammet.

  1. Skapa programmet för anropare. Aktivera Eureka-klienten i ditt Spring Boot-program genom att lägga till anteckningen i huvudklassen @EnableDiscoveryClient .

    @SpringBootApplication
    @EnableDiscoveryClient
    public class CalleeApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CalleeApplication.class, args);
    	}
    }
    
  2. Skapa en slutpunkt i anroparprogrammet som anropas av anroparprogrammet.

    @RestController
    public class CalleeController {
    
        @GetMapping("/call")
        public String calledByCaller() {
            return "Hello from Application callee!";
        }
    }
    
  3. Ange namnet på det anropade programmet i programkonfigurationsfilen. Till exempel application.yml.

    spring.application.name=callee
    
  4. Skapa anroparprogrammet.

    Lägg till kommentaren @EnableDiscoveryClient för att aktivera Eureka-klientfunktioner. Skapa också en WebClient.Builder böna med kommentaren @LoadBalanced för att utföra belastningsutjämningsanrop till andra tjänster.

    @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. Skapa en kontrollant i anroparprogrammet som använder WebClient.Builder för att anropa anroparprogrammet med hjälp av dess programnamn, anropare.

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

Nu har du ett samtals- och samtalsprogram som kommunicerar med varandra med hjälp av Eureka Server för Spring Java-komponenter. Kontrollera att båda programmen körs och binder till Eureka-servern innan du testar /call-callee slutpunkten i anroparprogrammet.

Begränsningar

  • Komponenten Eureka Server Java levereras med en standardkonfiguration, eureka.server.enable-self-preservation, inställd på false. Den här standardkonfigurationen hjälper till att undvika tider då instanser inte tas bort när självbevarande har aktiverats. Om instanser tas bort för tidigt kan vissa begäranden dirigeras till obefintliga instanser. Om du vill ändra den här inställningen till truekan du skriva över den genom att ange dina egna konfigurationer i Java-komponenten.

  • Eureka-servern har bara en enda replik och stöder inte skalning, vilket gör peer Eureka-serverfunktionen otillgänglig.

  • Eureka-instrumentpanelen är inte tillgänglig.

Nästa steg