Heim  >  Artikel  >  Java  >  In Java geschriebenes Microservice-Service-Registrierungscenter und Service-Discovery-Tool

In Java geschriebenes Microservice-Service-Registrierungscenter und Service-Discovery-Tool

王林
王林Original
2023-08-09 11:12:211297Durchsuche

In Java geschriebenes Microservice-Service-Registrierungscenter und Service-Discovery-Tool

In Java geschriebenes Microservice-Service-Registrierungscenter und Service-Discovery-Tool

Einführung

Mit der Popularität der Microservice-Architektur sind Service-Registrierung und -Discovery zu einem wichtigen Bestandteil geworden. In der Microservice-Architektur registrieren sich Dienste aktiv beim Registrierungscenter und entdecken und verbinden Dienste über das Registrierungscenter. In diesem Artikel wird erläutert, wie Sie mit Java ein einfaches Microservice-Service-Registrierungscenter und ein Service-Discovery-Tool schreiben.

1. Microservice Service Registration Center

Microservice Service Registration Center ist eine zentralisierte Komponente, die zur Verwaltung der Registrierung und Erkennung jedes Dienstes verwendet wird. In diesem Artikel verwenden wir Spring Boot und Netflix Eureka, um eine Dienstregistrierung zu implementieren.

1.1 Erstellen Sie ein Spring Boot-Projekt

Zuerst müssen wir ein Projekt basierend auf Spring Boot erstellen. Sie können gängige Java-Entwicklungstools wie Eclipse und IntelliJ IDEA verwenden, um Projekte zu erstellen, und die folgenden Abhängigkeiten zur Datei pom.xml hinzufügen: pom.xml文件中:

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

1.2 配置Eureka服务器

application.properties文件中,添加以下配置:

spring.application.name=eureka-server
server.port=8761

eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=60000

1.3 创建Eureka服务器

接下来,创建一个EurekaServerApplication类,并使用@EnableEurekaServer注解来启用Eureka服务器。

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

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

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

现在,启动该应用程序,Eureka服务器将在http://localhost:8761上运行。

2. 微服务服务发现工具

微服务服务发现工具用于从服务注册中心中发现可用的服务实例。在本文中,我们将使用Netflix Ribbon来实现服务的发现。

2.1 创建一个Spring Boot项目

同样地,创建一个基于Spring Boot的项目,并添加以下依赖项到pom.xml文件中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
</dependencies>

2.2 配置Eureka客户端

application.properties文件中,添加以下配置:

spring.application.name=service-discovery-client
server.port=8080

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

2.3 创建服务消费者

接下来,创建一个HelloController类,并使用Netflix Ribbon来消费服务。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/hello")
    public String hello() {
        List<ServiceInstance> instances = discoveryClient.getInstances("hello-service");
        if (instances != null && !instances.isEmpty()) {
            ServiceInstance serviceInstance = instances.get(0);
            String url = serviceInstance.getUri().toString();
            RestTemplate restTemplate = new RestTemplate();
            return restTemplate.getForObject(url + "/hello", String.class);
        }
        return "No service available.";
    }
}

2.4 运行服务消费者

最后,启动该应用程序,服务消费者将在http://localhost:8080上运行。通过访问http://localhost:8080/hello,它将消费名为hello-service的微服务的/hellorrreee

1.2 Konfigurieren Sie den Eureka-Server

im application.properties, fügen Sie die folgende Konfiguration hinzu:

rrreee

1.3 Eureka Server erstellen🎜🎜Als nächstes erstellen Sie eine EurekaServerApplication-Klasse und verwenden Sie die Annotation @EnableEurekaServer um den Eureka-Server zu aktivieren. 🎜rrreee🎜 Starten Sie jetzt die Anwendung und der Eureka-Server wird auf http://localhost:8761 ausgeführt. 🎜🎜2. Microservice-Service-Discovery-Tool🎜🎜Microservice-Service-Discovery-Tool wird verwendet, um verfügbare Serviceinstanzen aus der Service-Registrierung zu ermitteln. In diesem Artikel verwenden wir Netflix Ribbon, um die Diensterkennung zu implementieren. 🎜🎜2.1 Erstellen Sie ein Spring Boot-Projekt🎜🎜Erstellen Sie auf ähnliche Weise ein Projekt basierend auf Spring Boot und fügen Sie die folgenden Abhängigkeiten zur Datei pom.xml hinzu: 🎜rrreee🎜2.2 Konfigurieren Sie den Eureka-Client🎜🎜 Im Fügen Sie in der Datei application.properties die folgende Konfiguration hinzu: 🎜rrreee🎜2.3 Erstellen Sie einen Dienstkonsumenten. 🎜🎜Als nächstes erstellen Sie eine HelloController-Klasse und verwenden Sie das Netflix-Menüband, um den Dienst zu nutzen. 🎜rrreee🎜2.4 Ausführen des Service-Consumers 🎜🎜Zum Schluss starten Sie die Anwendung und der Service-Consumer wird auf http://localhost:8080 ausgeführt. Durch den Zugriff auf http://localhost:8080/hello wird die Schnittstelle /hello des Mikroservices mit dem Namen hello-service genutzt. 🎜🎜Fazit🎜🎜In diesem Artikel wird erläutert, wie Sie mit Java eine Microservice-Service-Registrierung und ein Service-Discovery-Tool basierend auf Spring Boot und Netflix Eureka schreiben. Mit diesen Tools können wir die Serviceregistrierung und -erkennung problemlos in der Microservice-Architektur implementieren. Ich hoffe, dieser Artikel kann Ihnen hilfreich sein! 🎜

Das obige ist der detaillierte Inhalt vonIn Java geschriebenes Microservice-Service-Registrierungscenter und Service-Discovery-Tool. 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