Centre d'inscription——SpringCloud Netflix Eureka

Introduction à Eurêka

Eureka est un composant de découverte de services basé sur REST. SpringCloud l'intègre dans son sous-projet spring-cloud-netflix pour réaliser l'enregistrement et la découverte des services de SpringCloud, et fournit également l'équilibrage de charge, le basculement et d'autres fonctionnalités. Actuellement, Eureka2.0 a n’est plus entretenu et donc son utilisation n’est pas recommandée.

Eureka a deux éléments de rôle :

  • Eureka Server : composant du centre d'enregistrement des services, qui fournit une interface pour l'enregistrement et la découverte des services.
  • Client Eureka : Divers microservices enregistrent leurs propres instances de service dans Eureka Server. Vous pouvez également obtenir la liste des services et consommer des services via Eureka Server.

Les clients du microservice s'inscrivent auprès d'Eureka, puis envoient des battements de cœur toutes les 30 secondes pour renouveler leurs baux. Si un client ne peut pas renouveler son bail plusieurs fois, il sera expulsé du registre du serveur dans environ 90 secondes. Les informations d'enregistrement et les mises à jour sont répliquées sur tous les nœuds Eureka du cluster, et les clients de n'importe quelle région peuvent rechercher les informations du registre (cela se produit toutes les 30 secondes) pour localiser leurs services et passer des appels à distance.


Construire le centre d'enregistrement Eureka

Créez le projet eureka-server et introduisez les dépendances. Ce projet est basé sur SpringBoot 2.3.1, SpringCloud Hoxton.SR12

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

Ajoutez des annotations à la classe de démarrage @EnaleEurekaServerpour activer la fonction du centre d'enregistrement Euerka

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
    
    

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

Ajouter la configuration du serveur Eureka dans le fichier de configuration

server:
  port: 8001 # 指定运行端口

spring:
  application:
    name: eureka-server # 指定服务名称

eureka:
  instance:
    hostname: localhost # 指定主机名称
  client:
    fetch-registry: false # 指定能否从注册中心获取服务
    register-with-eureka: false # 指定是否将服务注册到注册中心

Exécutez la méthode principale pour démarrer le service et accédez-y dans le navigateur http://localhost:8001/pour voir l'interface du centre d'inscription Eureka.

Créer le projet eureka-client et introduire les dépendances

<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-client</artifactId>
</dependency>

Ajouter une annotation à la classe de démarrage @EnableDiscoveryClientpour indiquer qu'il s'agit d'un client Eureka

@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {
    
    

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

Ajouter la configuration du client Eureka dans le fichier de configuration

server:
  port: 8101 # 指定运行端口

spring:
  application:
    name: eureka-client # 指定服务名称

eureka:
  client:
    fetch-registry: true # 指定能否从注册中心获取服务
    register-with-eureka: true # 指定是否将服务注册到注册中心
    service-url:
      defaultZone: http://localhost:8001/eureka

Exécutez la méthode main, démarrez le projet eureka-client, actualisez http://localhost:8001/la page et vous pouvez voir que cureka-client a été injecté dans le service Eurcka


Créer un cluster de centres d'enregistrement Eureka

Étant donné que tous les services seront enregistrés auprès du centre d'enregistrement, les appels entre services sont effectués en obtenant la liste des services auprès du centre d'enregistrement. Une fois le centre d'enregistrement fermé, des problèmes surviendront dans tous les appels de service, de sorte que plusieurs centres d'enregistrement sont nécessaires pour former un cluster afin de fournir des services.

Créez deux projets eureka-server. Le fichier de configuration du projet eureka-server-1 est le suivant :

server:
  port: 8002 # 指定运行端口

spring:
  application:
    name: eureka-server-1 # 指定服务名称

eureka:
  instance:
    hostname: localhost # 指定主机名称
  client:
    fetch-registry: true # 指定能否从注册中心获取服务
    register-with-eureka: true # 指定是否将服务注册到注册中心
    service-url:
      defaultZone: http://localhost:8003/eureka/

Le fichier de configuration du projet eureka-server-2 est le suivant :

server:
  port: 8003 # 指定运行端口

spring:
  application:
    name: eureka-server-1 # 指定服务名称

eureka:
  instance:
    hostname: localhost # 指定主机名称
  client:
    fetch-registry: true # 指定能否从注册中心获取服务
    register-with-eureka: true # 指定是否将服务注册到注册中心
    service-url:
      defaultZone: http://localhost:8002/eureka/

Enregistrez-vous mutuellement via deux centres d'enregistrement pour créer un cluster de centres d'enregistrement à deux nœuds. Démarrez les projets séparément, vérifiez http://localhost:8001/et http://localhost:8002/, vous constaterez que les deux centres d'inscription ont été enregistrés séparément.


Guess you like

Origin blog.csdn.net/CSDN_handsome/article/details/132258318