Heim >Java >javaLernprogramm >Dienstregistrierung und -erkennung in Spring Cloud-Mikrodiensten

Dienstregistrierung und -erkennung in Spring Cloud-Mikrodiensten

WBOY
WBOYOriginal
2023-06-23 09:48:061068Durchsuche

Mit der kontinuierlichen Entwicklung des Internetgeschäfts können einzelne Anwendungen die Anforderungen komplexer Geschäftsanforderungen nicht mehr erfüllen, und die Microservice-Architektur hat sich nach und nach zu einem beliebten Geschäftsarchitekturmodell entwickelt. Spring Cloud ist eine der wichtigen unterstützenden Technologien im Rahmen des Microservice-Architektursystems, und die Implementierung seiner Serviceerkennungs- und Registrierungsfunktionen ist sehr wichtig. In diesem Artikel werden die Dienstregistrierungs- und Erkennungsfunktionen in Spring Cloud ausführlich erläutert.

  1. Hintergrund

In der Microservice-Architektur ist jedes Funktionsmodul ein unabhängiger Dienst, und Dienste müssen miteinander kommunizieren. Daher ist ein Mechanismus erforderlich, um die Kommunikation zwischen Diensten zu verwalten. Der Dienstregistrierungs- und Erkennungsmechanismus ist ein solcher Mechanismus, der es Diensten ermöglicht, andere Dienste dynamisch zu registrieren und zu entdecken, damit diese kommunizieren und zusammenarbeiten können.

Spring Cloud bietet einen Dienstregistrierungs- und Erkennungsmechanismus, der verschiedene Registrierungszentren wie Eureka und Consul integriert. Unter ihnen ist Eureka eines der beliebtesten Registrierungszentren mit hoher Verfügbarkeit und Leistung.

  1. Dienstregistrierung

Der Zweck der Dienstregistrierung besteht darin, den Dienst beim Registrierungszentrum zu registrieren, damit andere Dienste ihn nutzen können. In Spring Cloud werden die Diensterkennungs- und Registrierungsfunktionen über die Annotation @EnableDiscoveryClient aktiviert. Gleichzeitig müssen relevante Konfigurationsinformationen zur Datei application.yml hinzugefügt werden.

server:
  port: 8080
spring:
  application:
    name: service-demo
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/

In der obigen Konfiguration ist application.name der Name des Dienstes und eureka.client.service-url.defaultZone die Adresse des Registrierungscenters.

  1. Diensterkennung

Der Zweck der Diensterkennung besteht darin, die erforderlichen Dienstinstanzen im Registrierungscenter zu finden und diese Dienstinstanzen dann gemäß der Lastausgleichsrichtlinie aufzurufen. Spring Cloud bietet eine Vielzahl von Lösungen für die Serviceerkennung und den Lastausgleich, z. B. Ribbon, Feign usw.

Wenn Sie Ribbon zum Implementieren der Diensterkennung und des Lastausgleichs verwenden, müssen Sie relevante Abhängigkeiten in der Datei pom.xml hinzufügen. Der Beispielcode lautet wie folgt:

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

Zuerst müssen Sie die Annotation @EnableDiscoveryClient zur Startklasse hinzufügen, um Dienstregistrierungs- und Erkennungsfunktionen zu aktivieren. Anschließend können Sie die Annotation @LoadBalanced verwenden, um eine RestTemplate-Instanz mit Lastausgleich zu erstellen und diese Instanz dann zum Aufrufen anderer Dienste zu verwenden. Der Beispielcode lautet wie folgt:

@RestController
public class ServiceController {
    @Autowired
    private RestTemplate restTemplate;
 
    @RequestMapping("/getProduct")
    public String getProduct() {
        String result = restTemplate.getForObject("http://product-service/product", String.class);
        return "get product from " + result;
    }
 
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

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

Verwenden Sie im obigen Code restTemplate.getForObject(). Methode zum Aufrufen anderer Dienste. Sie müssen „Anwendungsname“ anstelle der tatsächlichen Adresse verwenden, z. B. „http://Produktdienst/Produkt“, wobei Produktdienst der Dienstname ist.

  1. Zusammenfassung

Spring Cloud bietet Dienstregistrierungs- und Erkennungsfunktionen, die es jeder Dienstinstanz ermöglichen, sich gegenseitig zu erkennen und anzurufen. Durch diesen Mechanismus kann jede Komponente in der Microservice-Architektur bequemer verwaltet und geplant werden und die Verfügbarkeit und Skalierbarkeit des Gesamtsystems verbessert werden.

Das obige ist der detaillierte Inhalt vonDienstregistrierung und -erkennung in Spring Cloud-Mikrodiensten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn