Centraliserad konfiguration med Config Server
Hantera gateway-konfigurationer centralt med Spring Cloud Config Server för dynamiska uppdateringar och miljöspecifika inställningar.
Centraliserad konfiguration med Config Server är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Varför centraliserad konfiguration?
I en mikrotjänstarkitektur kan du ha många tjänster, var och en med sina egna konfigurationsfiler. Att hantera dessa filer separat kan bli en stor utmaning.
Föreställ dig att uppdatera en databasanslutningssträng i 20 olika tjänster! Det är både felkänsligt och tidskrävande.
- Decentraliserade konfigurationer: Svåra att hantera i stor skala.
- Inkonsistenta konfigurationer: Olika tjänster kan ha något varierande inställningar.
- Manuella uppdateringar: Omständliga och riskfyllda.
Möt Spring Cloud Config Server
Spring Cloud Config Server tillhandahåller en centraliserad, extern konfigurationstjänst för distribuerade system. Den är byggd på Spring Boot och kan enkelt integreras med olika alternativ för backend-lagring.
Se den som ett centralt nav där alla applikationens inställningar finns. Dina tjänster (klienter) hämtar sedan sina konfigurationer från detta nav.
- Centraliserad lagring: En plats för alla konfigurationer.
- Versionshanterad: Konfigurationerna lagras i Git (eller motsvarande).
- Miljöspecifik: Hantera enkelt konfigurationer för olika miljöer (utveckling, produktion).
Konfigurera Config Server
För att skapa en Config Server konfigurerar du först en grundläggande Spring Boot-applikation och lägger till beroendet spring-cloud-config-server. Därefter aktiverar du den med annoteringen @EnableConfigServer.
Här är huvudklassen för vår Config Server:
package com.coddykit.configserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}Config Server-egenskaper
Config Server måste veta var konfigurationsfilerna finns. Vanligtvis lagras de i ett Git-repositorium.
Du konfigurerar Git-repositoriets URI och sökvägar i filen application.properties eller application.yml:
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/your-org/config-repo.git
spring.cloud.config.server.git.search-paths=configs
Detta anger att servern ska köras på port 8888 och hämta konfigurationer från det angivna Git-repositoriet genom att söka i mappen 'configs'.
Lagra konfigurationer i Git
I ditt Git-repositorium (till exempel config-repo.git) skapar du konfigurationsfiler för varje tjänst. Namngivningskonventionen är {application-name}-{profile}.yml eller .properties.
För vår Spring Cloud Gateway antar vi att dess spring.application.name är gateway-service. En grundläggande konfigurationsfil i ditt Git-repo (till exempel configs/gateway-service.yml) kan se ut så här:
spring:
cloud:
gateway:
routes:
- id: example_route
uri: http://example.org
predicates:
- Path=/example/**
Gateway som Config-klient
Nu konfigurerar vi vår Spring Cloud Gateway så att den fungerar som klient och hämtar sina konfigurationer från Config Server. Du behöver beroendet spring-cloud-starter-config.
I stället för application.properties använder klienten bootstrap.properties (eller .yml) för att ansluta till Config Server *innan* huvudprogrammets kontext läses in.
spring.application.name=gateway-service
spring.cloud.config.uri=http://localhost:8888
spring.application.name hjälper Config Server att hitta rätt konfigurationsfil (till exempel gateway-service.yml).
Använd centraliserade egenskaper
När konfigurationen är klar ansluter din Gateway-tjänst automatiskt till Config Server vid uppstart, hämtar konfigurationerna (till exempel routes, predicates och filter) och tillämpar dem.
Det innebär att du kan definiera alla Gatewayens routingregler, globala filter och andra inställningar i Git-repositoriet, som hanteras av Config Server, i stället för direkt i Gatewayens kod.
En route som definieras i gateway-service.yml i ditt Git-repo kommer till exempel att tillämpas av din Gateway.
Miljöprofiler
Config Server är särskilt bra på att hantera miljöspecifika konfigurationer. Du kan skapa filer som gateway-service-dev.yml eller gateway-service-prod.yml i ditt Git-repo.
Gateway-klienten kan sedan ange sin aktiva profil i bootstrap.properties:
spring.application.name=gateway-service
spring.cloud.config.uri=http://localhost:8888
spring.profiles.active=dev
Config Server prioriterar gateway-service-dev.yml och skriver över eventuella egenskaper i basfilen gateway-service.yml.
Dynamisk uppdatering av konfiguration
En kraftfull funktion är möjligheten att uppdatera konfigurationer utan att starta om din Gateway-tjänst. Detta uppnås med Spring Cloud Actuator och annoteringen @RefreshScope.
1. Lägg till beroendet spring-boot-starter-actuator i din Gateway.
2. Aktivera slutpunkten /actuator/refresh i application.properties:
management.endpoints.web.exposure.include=refresh
3. Annotera alla beans i din Gateway som använder konfigurationsegenskaper med @RefreshScope.
När du har uppdaterat din Git-konfiguration och skickat upp ändringarna kan du skicka en POST-begäran till /actuator/refresh på din Gateway, så hämtar den de nya konfigurationerna!
Snabb kontroll av konfiguration
Vilka av följande är viktiga fördelar med att använda Spring Cloud Config Server i en mikrotjänstarkitektur?
Sammanfattning: Centraliserad konfiguration
Ni har lärt er hur Spring Cloud Config Server hanterar utmaningen med att administrera konfigurationer i distribuerade system. Det fungerar som ett centralt nav, vanligtvis med stöd av ett Git-repository, för att lagra och tillhandahålla konfigurationer.
Viktiga lärdomar:
- Config Server: En Spring Boot-app med
@EnableConfigServer. - Config Client: Er Gateway (eller andra tjänster) som ansluter via
bootstrap.properties. - Git-integrering: Konfigurationer lagras som
{application}-{profile}.yml. - Dynamisk uppdatering: Uppdatera konfigurationer direkt med Actuators
/refresh-endpoint och@RefreshScope.
Detta centraliserade tillvägagångssätt skapar ordning och effektivitet i hanteringen av er mikrotjänstekonfiguration!
Lär dig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Centraliserad konfiguration med Config Server” gratis?
Ja – hela texten till ”Centraliserad konfiguration med Config Server” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), kan Ni uppgradera till CoddyKit PRO. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Vad lär jag mig i ”Centraliserad konfiguration med Config Server”?
Hantera gateway-konfigurationer centralt med Spring Cloud Config Server för dynamiska uppdateringar och miljöspecifika inställningar. Ni övar på API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)?
Du behöver inga förkunskaper. Utbildningen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Centraliserad konfiguration med Config Server”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektionen?
Ja. Varje API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- JWT-autentisering och -auktorisering
- Distribuerad spårning med Sleuth/Zipkin
- Centraliserad konfiguration med Config Server
- Exponera mätvärden med Actuator och Prometheus