Integratie met Eureka/Consul
Configureer Spring Cloud Gateway om zich te registreren bij en services te ontdekken via een serviceregister zoals Eureka of Consul.
Integratie met Eureka/Consul is een gratis API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject API-gateway en reverse proxy (Nginx + Spring Cloud Gateway). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Wat is servicedetectie?
In een microservicesarchitectuur zijn services vaak dynamisch. Ze kunnen op- of afschalen en hun netwerklocaties (IP-adressen en poorten) kunnen regelmatig veranderen.
Servicedetectie is een mechanisme waarmee applicaties en services elkaar kunnen vinden zonder dat hun netwerklocaties hardcoded hoeven te zijn. Het werkt als een dynamisch telefoonboek voor je services!
Serviceregisters: Eureka en Consul
Een serviceregister is een centrale server die een lijst bijhoudt van beschikbare service-instanties en hun netwerklocaties.
- Netflix Eureka: Een zeer populaire keuze, vooral binnen het Spring Cloud-ecosysteem. Services registreren zichzelf bij Eureka.
- HashiCorp Consul: Een andere robuuste optie die naast servicedetectie ook een gedistribueerde sleutel-waardeslag en statuscontroles biedt.
Met beide kunnen services zichzelf registreren en andere services vinden.
Waarom de Gateway servicedetectie nodig heeft
Spring Cloud Gateway fungeert als toegangspunt voor je microservices.
In plaats van routes met vaste URL's voor elke backendservice te configureren, kan de Gateway een serviceregister raadplegen:
- "Waar draait de 'user-service' nu?"
- "Geef me een beschikbare instantie van 'product-service'."
Hierdoor wordt flexibele, dynamische en veerkrachtige routering mogelijk, omdat de Gateway de servicelocaties niet vooraf hoeft te kennen.
Voorbeeldservice: Eureka-client configureren
Laten we eerst bekijken hoe een eenvoudige Spring Boot-service wordt geconfigureerd om zichzelf bij een Eureka-server te registreren.
We gebruiken een service met de naam hello-service. Het bestand application.yml verwijst naar de standaardzone van de Eureka-server.
spring:
application:
name: hello-service
server:
port: 8081
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eurekaEureka Client inschakelen in een service
Om ervoor te zorgen dat onze hello-service zich daadwerkelijk bij Eureka registreert, moeten we de annotatie @EnableEurekaClient toevoegen aan de hoofdklasse van de applicatie.
Deze annotatie activeert de functionaliteit van de Eureka Discovery Client.
package com.example.helloservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@EnableEurekaClient
@SpringBootApplication
@RestController
public class HelloServiceApplication {
public static void main(String[] args) {
SpringApplication.run(HelloServiceApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "Hello from Hello Service!";
}
}Gateway configureren voor Eureka
Laten we nu onze Spring Cloud Gateway configureren om verbinding te maken met dezelfde Eureka-server. De Gateway fungeert zelf ook als Eureka-client om andere services te vinden.
In het bestand application.yml worden de URL van de Eureka-server en de naam van de eigen applicatie opgegeven.
server:
port: 8080
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka
instance:
hostname: localhost
spring:
application:
name: api-gatewayServicedetectie inschakelen in de Gateway
Net als bij de backendservice heeft de hoofdklasse van de Gateway een annotatie nodig om de servicedetectiefunctionaliteit in te schakelen.
Gebruik @EnableDiscoveryClient om Spring Boot te laten weten dat de discovery client voor de Gateway moet worden geactiveerd.
package com.example.apigateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ApiGatewayApplication.class, args);
}
}Routeren via een service-ID
Als servicedetectie is ingeschakeld, kunnen we Gateway-routes definiëren met de geregistreerde ID van een service in plaats van met een vaste URL.
Het voorvoegsel lb:// (voor 'load balancer') vertelt de Gateway dat deze zijn discovery client moet gebruiken om instanties van de opgegeven servicenaam (bijvoorbeeld hello-service) te vinden en de aanvraag vervolgens te routeren.
spring:
cloud:
gateway:
routes:
- id: hello_route
uri: lb://hello-service
predicates:
- Path=/hello/**De aanvraagstroom
Laten we een aanvraag naar http://localhost:8080/hello volgen:
- De Gateway, die op poort 8080 luistert, ontvangt de aanvraag.
- De Gateway koppelt het padpredicaat
/hello/**aan de routehello_route. - De Gateway gebruikt zijn Eureka-client om een beschikbare instantie van
hello-serviceop te zoeken. - Eureka retourneert het adres van een instantie (bijvoorbeeld
localhost:8081). - De Gateway stuurt de aanvraag door naar
http://localhost:8081/hello. - De
hello-serviceverwerkt de aanvraag en retourneert een antwoord, dat de Gateway vervolgens terugstuurt naar de client.
Consul: een andere optie
Hoewel Eureka veel wordt gebruikt, is Consul van HashiCorp een andere krachtige tool voor servicedetectie en configuratiebeheer.
Om Consul te gebruiken, voeg je doorgaans de afhankelijkheid voor Spring Cloud Consul Discovery toe en configureer je je Gateway en services om naar de Consul-agent te verwijzen (meestal actief op poort 8500).
Het principe blijft hetzelfde: de Gateway gebruikt service-ID's (bijvoorbeeld lb://my-service) om services die in Consul zijn geregistreerd dynamisch te vinden en ernaartoe te routeren.
spring:
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: api-gatewayControle van Gateway-servicedetectie
Je hebt je Spring Cloud Gateway geconfigureerd om Eureka te gebruiken voor servicedetectie en je hebt een service met de naam my-service bij Eureka geregistreerd.
Welke uri-configuratie routeert aanvragen via servicedetectie correct naar my-service?
Samenvatting van de les
In deze les heb je geleerd:
- Waarom servicedetectie belangrijk is in dynamische microservicesomgevingen.
- Hoe Eureka en Consul als centrale serviceregisters fungeren.
- Hoe je zowel backendservices als Spring Cloud Gateway configureert als discovery clients.
- Hoe je Gateway-routes definieert met service-ID's (bijvoorbeeld
lb://service-name) voor dynamische routering.
Deze integratie is essentieel voor het bouwen van schaalbare en veerkrachtige microservicesarchitecturen. Vervolgens bekijken we meer dynamische routeringsregels en predicaten.
Leer API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Integratie met Eureka/Consul” gratis?
Ja — de volledige tekst van “Integratie met Eureka/Consul” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Wat leer ik in “Integratie met Eureka/Consul”?
Configureer Spring Cloud Gateway om zich te registreren bij en services te ontdekken via een serviceregister zoals Eureka of Consul. Je oefent met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) te beginnen?
Ervaring vooraf is niet nodig. API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Integratie met Eureka/Consul”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)?
Ja. Elke les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Integratie met Eureka/Consul
- Dynamische routering met servicediscovery
- Load balancing met Spring Cloud LoadBalancer
- De lb://-URI en Discovery Locator