Spring Boot 4-mikrotjänster och REST API:er · Lektion

Implementera tjänsteidentifiering med Eureka

Konfigurera och använd Netflix Eureka för dynamisk tjänsteregistrering och tjänsteidentifiering.

Lektion 1 av 312 steg

Implementera tjänsteidentifiering med Eureka är en gratis lektion i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit. Detta är lektion 1 av 3. 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 Spring Boot 4-mikrotjänster och REST API:er, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Varför tjänsteupptäckt?

I en mikrotjänstarkitektur behöver tjänster ofta kommunicera med varandra. Men hur hittar en tjänst en annan?

  • Dynamiska IP-adresser: Tjänstinstanser kan skalas upp eller ned och få nya IP-adresser.
  • Lastbalansering: Flera instanser av en tjänst behöver hittas.
  • Manuell konfiguration: Hårdkodade adresser är ömtåliga och skalas inte.

Tjänsteupptäckt löser detta genom att tillhandahålla ett centralt register där tjänster registrerar sig.

Introduktion till Netflix Eureka

Netflix Eureka är en kraftfull lösning för tjänsteupptäckt i mikrotjänster. Det är en REST-baserad tjänst som främst används i AWS-molnet för att hitta tjänster och möjliggöra lastbalansering och failover för tjänster i mellanlagret.

Eureka består av två huvudkomponenter:

  • Eureka Server: Det centrala registret som innehåller information om alla registrerade tjänster.
  • Eureka Client: En komponent som är inbäddad i varje mikrotjänst och registrerar sig hos Eureka Server.

Konfigurera Eureka Server: beroenden

Först konfigurerar vi vår Eureka Server. Ni behöver ett nytt Spring Boot-projekt. Lägg till följande beroende i pom.xml (för Maven) eller build.gradle (för Gradle):

Maven:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

Den här starter-modulen innehåller alla komponenter som behövs för att köra en Eureka-discovery-server.

Konfigurera Eureka Server

Konfigurera sedan er Eureka Server i src/main/resources/application.yml. Vi måste tala om för servern att den INTE ska registrera sig hos Eureka, eftersom den själv är servern!

server:
  port: 8761

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
  instance:
    hostname: localhost
  • server.port: 8761 är standardporten för Eureka.
  • register-with-eureka: false hindrar servern från att registrera sig som klient.
  • fetch-registry: false hindrar servern från att försöka hämta registret.

Programkod för Eureka Server

Aktivera slutligen Eureka Server-funktionaliteten genom att lägga till @EnableEurekaServer i huvudklassen för Spring Boot-applikationen:

Prova att köra det här exemplet:

package com.coddykit.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
  public static void main(String[] args) {
    SpringApplication.run(EurekaServerApplication.class, args);
  }
}

Öppna Eureka-instrumentpanelen

När ni har kört EurekaServerApplication kan ni öppna webbläsaren och gå till http://localhost:8761.

Ni bör då se Eureka-instrumentpanelen. Till en början visas inga registrerade tjänstinstanser. Instrumentpanelen är ett bra sätt att övervaka vilka tjänster som är aktiva och registrerade hos er Eureka Server.

Registrera tjänster: Eureka Client

Nu när vår Eureka Server körs ska vi registrera en mikrotjänst med den. Den här mikrotjänsten fungerar som en Eureka Client.

När en klienttjänst startar registrerar den sig hos Eureka Server och anger sin nätverksadress. Andra tjänster kan sedan fråga Eureka Server efter klientens adress.

Konfigurera Eureka Client: Beroenden

Skapa ett annat Spring Boot-projekt för din klienttjänst, till exempel en ”Hello Service”. Lägg till följande beroende i dess pom.xml eller build.gradle:

Maven:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

Det här beroendet tillhandahåller verktygen som behövs för att din tjänst ska fungera som en Eureka-klient och registrera sig hos servern.

Konfigurera din Eureka Client

Konfigurera din klienttjänst i dess application.yml. Den behöver veta var Eureka Server finns:

server:
  port: 8081 # Or any other unique port

spring:
  application:
    name: my-hello-service # Unique service name

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  • spring.application.name anger hur din tjänst identifieras i Eureka.
  • defaultZone pekar på URL:en till din Eureka Server.

Eureka Client: Applikationskod

För att aktivera registrering av klienttjänsten hos Eureka lägger du till annoteringen @EnableDiscoveryClient i dess huvudklass. Vi lägger också till en enkel REST-endpoint.

Prova att köra det här exemplet (se till att Eureka Server körs först!).

package com.coddykit.eurekaclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class EurekaClientApplication {
  public static void main(String[] args) {
    SpringApplication.run(EurekaClientApplication.class, args);
  }

  @GetMapping("/hello")
  public String hello() {
    return "Hello from Eureka Client!";
  }
}

Snabb kontroll

Vilken annotering ska du använda i huvudklassen för en Spring Boot-applikation för att aktivera registrering som klient hos en Eureka Server?

Sammanfattning: Eureka Service Discovery

Du har tagit ett stort steg in i mikrotjänsternas värld genom att förstå och implementera Eureka Service Discovery!

  • Service Discovery löser problemet med att tjänster dynamiskt hittar varandra.
  • Eureka Server fungerar som ett centralt register.
  • Eureka Clients (dina mikrotjänster) registrerar sig hos servern.
  • Använd @EnableEurekaServer för servern.
  • Använd @EnableDiscoveryClient för klienttjänster.

Med den här konfigurationen kan dina mikrotjänster kommunicera utan hårdkodade adresser, vilket gör arkitekturen mer robust och skalbar.

Gratis att börja

Lär dig Java 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
24
Lektioner
93

Vanliga frågor

Är lektionen ”Implementera tjänsteidentifiering med Eureka” gratis?

Ja – hela texten till ”Implementera tjänsteidentifiering med Eureka” 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 Spring Boot 4-mikrotjänster och REST API:er, kan Ni uppgradera till CoddyKit PRO. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Vad lär jag mig i ”Implementera tjänsteidentifiering med Eureka”?

Konfigurera och använd Netflix Eureka för dynamisk tjänsteregistrering och tjänsteidentifiering. Ni övar på Spring Boot 4-mikrotjänster och REST API:er 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 Spring Boot 4-mikrotjänster och REST API:er?

Du behöver inga förkunskaper. Utbildningen i Spring Boot 4-mikrotjänster och REST API:er 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 1 av 3.

Hur lång tid tar lektionen ”Implementera tjänsteidentifiering med Eureka”?

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 Spring Boot 4-mikrotjänster och REST API:er-lektionen?

Ja. Varje Spring Boot 4-mikrotjänster och REST API:er-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

  1. Implementera tjänsteidentifiering med Eureka
  2. Klientsidig lastbalansering med Ribbon
  3. API-gateway med Spring Cloud Gateway
← Tillbaka till Spring Boot 4-mikrotjänster och REST API:er