Enregistrement du service Spring Cloud Eureka et découverte de service super détaillés (supplémentaire - cas d'implémentation du code source - et schéma logique d'implémentation)

Eurêka

Cet article décrit d'abord les scénarios d'application et les cas d'implémentation de code d'Eureka. Plusieurs modules de service sont enregistrés dans Euraka, et l'implémentation d'appel entre services sera expliquée dans le prochain article !

Quelles fonctions les composants Eureka peuvent-ils atteindre

Eureka fait principalement :

  1. 注册发现中心
  2. 服务注册与发现的组件

Qu'est-ce que le principe CAP ?

Quand il s'agit d'Eureka, il faut mentionner CAP, alors quel est le principe CAP, regardons ensemble !
CAP 原则:Aussi connu sous le nom de théorème CAP, il fait référence à un système distribué.

Trois caractéristiques du principe CAP :
一致性 (Consistency):Dans un cluster, les données des trois machines sont cohérentes.
可用性I(Availability):Lorsqu'un nœud raccroche, l'ensemble du cluster peut continuer à fournir des services externes.
分区容错性 (Partition tolerance):Les données de chaque machine peuvent être temporairement incohérentes pour des raisons telles que le réseau ou la partition de la salle informatique.
(Cette fonctionnalité est inévitable) Le principe CAP signifie que ces trois éléments ne peuvent atteindre au plus que deux points en même temps, et qu'il est impossible de s'occuper des trois.

Cela dit, permettez-moi de mentionner la différence entre Eurekaet Zookeeper?
Zookeeper:
Suivez le principe CP Principe
Eureka:
AP : faites attention à la haute disponibilité de l'AP

Pratique du code d'enregistrement de service

Schéma d'implémentation de base global
insérez la description de l'image ici

Construire un centre d'inscription

Ensuite, permettez-moi de détailler comment réaliser rapidement l'utilisation d'Eureka via le code. Il vous
insérez la description de l'image ici
suffit de construire le projet que j'ai marqué dans la case rouge, et les autres n'ont pas besoin d'être construits. Je suis ici pour le groupe de centres d'enregistrement de service que j'ai créé auparavant, il y aura donc plusieurs centres d'enregistrement

Tout d'abord, construisez la structure des répertoires. Le projet Maven
注意:新增项目的时候选择Java8
est construit selon celui sur ma photo. Je n'entrerai pas dans le nouveau processus de projet ici un par un. Si vous ne comprenez pas, vous pouvez m'envoyer un message privé !
La première étape
consiste à créer un nouveau centre d'enregistrement, 01-eureka-server
insérez la description de l'image ici
la deuxième étape
consiste à modifier EurekaServerApplicationla classe de démarrage et à ajouter @EnableEurekaServerdes annotations, ce qui signifie que pour ouvrir le centre d'enregistrement Eureka, une seule 添加开启Eureka注解fonction locale doit être modifiée dans la classe de démarrage.
Le code source est le suivant :

package com.powernode;

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

@SpringBootApplication
@EnableEurekaServer //开启Eureka的注册中心的功能
public class EurekaServerApplication {
    
    

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

}

La troisième étape
consiste à modifier
le code source du fichier yml (fichier de configuration) comme suit :
j'ai ajouté des commentaires un par un pour ce que signifie chaque configuration, et je le modifie d'abord à ma manière.

#单机
server:
    port: 8761 # eureka的默认端口
spring:
    application:
      name: eureka-server # 应用名称 不要使用特殊字符
eureka: #Eureka的配置分三类 server client 实例的  eureka-server既是服务端又是客户端
    server: #服务端每间隔多少毫秒定期删除的操作(默认是3000030秒))
      eviction-interval-timer-in-ms: 10000
      renewal-percent-threshold: 0.85 # 续约百分比 超过85的应用没有和你续约 那么erueka不会踢除任何应用
    instance: # 实例的配置
      instance-id: ${
    
    eureka.instance.hostname}:${
    
    spring.application.name}:${
    
    server.port}} # 主机名称 : 应用名称 : 端口号
#      hostname: localhost # 主机名称 或者 服务的IP
#      prefer-ip-address: true #以IP的形式显示具体的服务信息
#      lease-renewal-interval-in-seconds: 5 # 服务实例的续约的时间间隔

La quatrième étape consiste
à modifier le fichier pom , car cette pièce doit spécifier les versions spring Cloud et spring Boot. Modifier selon la case que j'ai cochée en rouge
注意:01-eureka-server的pom文件

insérez la description de l'image ici
insérez la description de l'image ici

Service A Construire

Le nom du projet correspondant au service A est : 02-eureka-client-a, ne changez pas au mauvais endroit !
La première étape
consiste à modifier d'abord le fichier de configuration yml.
Le code source est le suivant :
j'ai ajouté des commentaires un par un sur la signification de chaque configuration, et je l'ai d'abord modifié à ma manière.

server:
  port: 8702 # 客户端端口没有要求
spring:
  application:
    name: eureka-client-a
# 注册 发送信息
eureka:
  client:
    service-url: # 指定注册地址
      defaultZone: http://localhost:8761/eureka
    register-with-eureka: true # 可以不往eureka-server注册
    fetch-registry: true # 应用是否去拉取服务列表到本地
    # 每个10秒中去注册中心重新进行拉取 时间越短脏毒越少 性能消耗大
    registry-fetch-interval-seconds: 10 # 为了缓解服务列表的脏毒问题
  instance:
    hostname: localhost # 应用的主机名称 最好谢主机ip
    instance-id: ${
    
    eureka.instance.hostname}:${
    
    spring.application.name}:${
    
    server.port}
    prefer-ip-address: true # 显示ip
    lease-renewal-interval-in-seconds: 10 # 实例续约的时间

La deuxième étape
consiste à modifier le fichier pom et à le modifier en fonction de la figure
1
insérez la description de l'image ici

Version du service B

Le nom du projet correspondant au service A est : 02-eureka-client-b, ne changez pas au mauvais endroit !
Semblable au service A,
la première étape
consiste à modifier d'abord le fichier de configuration yml.
Le code source est le suivant :
j'ai ajouté des commentaires un par un sur la signification de chaque configuration, et je l'ai d'abord modifié à ma manière.

server:
  port: 8703 # 客户端端口没有要求
spring:
  application:
    name: eureka-client-b
# 注册 发送信息
eureka:
  client:
    service-url: # 指定注册地址
      defaultZone: http://localhost:8761/eureka

La deuxième étape
consiste à modifier le fichier pom et à le modifier en fonction de la figure
insérez la description de l'image ici
insérez la description de l'image ici

démarrer le service

Démarrer le registre

Démarrez d'abord le centre d'enregistrement 01-eureka-serveret 服用A和服务Bdémarrez
la méthode de démarrage : cliquez sur le fichier de démarrage, puis cliquez sur le triangle vert pour sélectionner le mode d'exécution ou le mode de débogage, et vous pouvez
insérez la description de l'image ici
voir l'image ci-dessous, indiquant que le démarrage a réussi, et le retour le code d'état est 204.
注意:重点来了非常重点, entrez directement dans la barre d'adresse du navigateurhttp://localhost:8761/

insérez la description de l'image ici
Si vous http://localhost:8761/revenez à cette page après avoir tapé, 恭喜你Eureka注册中心启动成功!allez pour démarrer le service.
insérez la description de l'image ici

Démarrer le service A

C'est toujours la façon de démarrer, à la fois en mode exécution et en mode débogage.
insérez la description de l'image ici
Une fois le démarrage réussi, il s'affichera comme indiqué dans la figure ci-dessous et l'affichage d'état est 204.
insérez la description de l'image ici
注意:重点来了非常重点, entrez directement dans la barre d'adresse du navigateur http://localhost:8761/, ou vous venez d'ouvrir cette adresse à l'instant, appuyez directement sur F5 pour rafraichir la page. On peut voir clairement qu'il existe un service avec un nom d'application :
au-dessus du centre d'enregistrement, qui est enregistré. Très bien, continuez à démarrer le service B.EUREKA-CLIENT-A
insérez la description de l'image ici

démarrer le service B

Le service B est toujours lancé de la même manière que le service A. On voit clairement qu'il existe actuellement 三个服务正在运行des centres d'enregistrement, le service A et le service B. Retournez dans le navigateur, toujours sous la même URL, et appuyez sur F5 pour rafraîchir.
insérez la description de l'image ici
很好, vous pouvez voir que le service B est également enregistré.

insérez la description de l'image ici

conclusion

Jusqu'à présent, la réalisation de la fonction d'enregistrement d'un centre d'enregistrement et de deux modules de service est terminée. Selon ma méthode de construction de projets et d'implémentation de code, les blogueurs qui ne comprennent pas les messages privés, vous pouvez voir que j'ai d'autres composants.
est couramment utilisé Spring Cloud组件, il y a aussi les services de chaque composant dans la deuxième image, la construction du centre de configuration de fichiers nacos, la passerelle manuscrite, le fusible, etc., sont tous les codes sources, les blogueurs dans le besoin peuvent m'envoyer un message privé, sans frais, si vous avez Si vous ne comprenez pas, je répondrai pour vous gratuitement, j'espère que cela pourra aider tout le monde !
C'est la fin du partage dans ce numéro, et le prochain numéro partagera le lapin pour réaliser des appels à distance.
insérez la description de l'image ici
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/xiaohua616/article/details/132000558
conseillé
Classement