Maison  >  Article  >  Java  >  Centre d'enregistrement des services de microservices et outil de découverte de services écrits en Java

Centre d'enregistrement des services de microservices et outil de découverte de services écrits en Java

王林
王林original
2023-08-09 11:12:211252parcourir

Centre denregistrement des services de microservices et outil de découverte de services écrits en Java

Centre d'enregistrement des services de microservices et outil de découverte de services écrits en Java

Introduction

Avec la popularité de l'architecture des microservices, l'enregistrement et la découverte des services sont devenus un élément important. Dans l'architecture des microservices, les services s'inscrivent activement auprès du centre d'enregistrement, puis découvrent et connectent les services via le centre d'enregistrement. Cet article explique comment utiliser Java pour écrire un centre d'enregistrement de services de microservices simple et un outil de découverte de services.

1. Centre d'enregistrement des services microservices

Le centre d'enregistrement des services microservices est un composant centralisé utilisé pour gérer l'enregistrement et la découverte de chaque service. Dans cet article, nous utiliserons Spring Boot et Netflix Eureka pour implémenter un registre de services.

1.1 Créer un projet Spring Boot

Tout d'abord, nous devons créer un projet basé sur Spring Boot. Vous pouvez utiliser des outils de développement Java courants tels qu'Eclipse et IntelliJ IDEA pour créer des projets et ajouter les dépendances suivantes au fichier pom.xml : 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 Configurez le serveur Eureka

dans le application.properties, ajoutez la configuration suivante :

rrreee

1.3 Créer Eureka Server🎜🎜Ensuite, créez une classe EurekaServerApplication et utilisez l'annotation @EnableEurekaServer. pour l'activer sur le serveur Eureka. 🎜rrreee🎜 Maintenant, lancez l'application et le serveur Eureka fonctionnera sur http://localhost:8761. 🎜🎜2. Outil de découverte de services de microservices🎜🎜L'outil de découverte de services de microservices est utilisé pour découvrir les instances de service disponibles à partir du registre de services. Dans cet article, nous utiliserons Netflix Ribbon pour implémenter la découverte de services. 🎜🎜2.1 Créer un projet Spring Boot🎜🎜De même, créez un projet basé sur Spring Boot et ajoutez les dépendances suivantes au fichier pom.xml : 🎜rrreee🎜2.2 Configurez le client Eureka🎜🎜 Dans le application.properties, ajoutez la configuration suivante : 🎜rrreee🎜2.3 Créez un consommateur de service 🎜🎜Ensuite, créez une classe HelloController et utilisez le ruban Netflix pour consommer le service. 🎜rrreee🎜2.4 Exécution du consommateur de service 🎜🎜Enfin, démarrez l'application et le consommateur de service s'exécutera sur http://localhost:8080. En accédant à http://localhost:8080/hello, il consommera l'interface /hello du microservice nommé hello-service. 🎜🎜Conclusion🎜🎜Cet article explique comment utiliser Java pour écrire un registre de services de microservices et un outil de découverte de services basé sur Spring Boot et Netflix Eureka. Grâce à ces outils, nous pouvons facilement implémenter l'enregistrement et la découverte de services dans une architecture de microservices. J'espère que cet article pourra vous être utile ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn