Registro de servicios de Spring Cloud Eureka y descubrimiento de servicios súper detallados (adicional - caso de implementación de código fuente - y diagrama de lógica de implementación)

Eureka

Este artículo describe primero los escenarios de aplicación y los casos de implementación de código de Eureka. Múltiples módulos de servicio están registrados en Euraka, ¡y la implementación de llamadas entre servicios se explicará en el próximo artículo!

Qué funciones pueden lograr los componentes de Eureka

Eureka hace principalmente:

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

¿Qué es el principio de la PAC?

Cuando se trata de Eureka, se debe mencionar CAP, así que, ¿cuál es el principio CAP? ¡Echémosle un vistazo juntos!
CAP 原则:También conocido como el teorema CAP, se refiere a un sistema distribuido.

Tres características del principio CAP :
一致性 (Consistency):En un clúster, los datos de las tres máquinas son consistentes.
可用性I(Availability):Cuando un nodo cuelga, todo el clúster puede continuar brindando servicios externos.
分区容错性 (Partition tolerance):Los datos en cada máquina pueden ser inconsistentes temporalmente debido a razones tales como la partición o la red de la sala de computadoras.
(Esta característica es inevitable) El principio CAP significa que estos tres elementos solo pueden lograr como máximo dos puntos al mismo tiempo, y es imposible ocuparse de los tres.

Habiendo dicho eso, permítanme mencionar la diferencia entre Eurekay Zookeeper?
Zookeeper:
Siga el principio CP Principio
Eureka:
AP: preste atención a la alta disponibilidad AP

Práctica de código de registro de servicio

Diagrama general de implementación del núcleo
inserte la descripción de la imagen aquí

Construir un centro de registro

A continuación, permítanme echar un vistazo detallado a cómo realizar rápidamente el uso de Eureka a través del código.
inserte la descripción de la imagen aquí
Solo necesita compilar el proyecto que marqué en el cuadro rojo, y no es necesario compilar los demás. Estoy aquí para grupo de centros de registro de servicio que hice antes, por lo que habrá varios centros de registro

En primer lugar, construya la estructura de directorios. El proyecto Maven
注意:新增项目的时候选择Java8
está construido de acuerdo con el de mi imagen. No entraré en el proceso del nuevo proyecto aquí uno por uno. Si no lo entiende, ¡puede enviarme un mensaje privado!
El primer paso
es crear un nuevo centro de registro, 01-eureka-server
inserte la descripción de la imagen aquí
el segundo paso
es modificar EurekaServerApplicationla clase de inicio y agregar @EnableEurekaServeranotaciones, lo que significa que para abrir el centro de registro de Eureka, solo 添加开启Eureka注解se necesita modificar una función local en la clase de inicio.
El código fuente es el siguiente:

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);
    }

}

El tercer paso
es modificar
el código fuente del archivo yml (archivo de configuración) de la siguiente manera:
he agregado comentarios uno por uno para lo que significa cada configuración, y primero modificarlo a mi manera.

#单机
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 # 服务实例的续约的时间间隔

El cuarto paso es
modificar el archivo pom , porque esta pieza necesita especificar las versiones Spring Cloud y Spring Boot. Modificar según la casilla que marqué en rojo
注意:01-eureka-server的pom文件

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Dar servicio a una construcción

El nombre del proyecto correspondiente al servicio A es: 02-eureka-client-a, ¡no cambie el lugar equivocado!
El primer paso
es modificar primero el archivo de configuración yml.
El código fuente es el siguiente:
he agregado comentarios uno por uno para lo que significa cada configuración, y primero lo cambio a mi manera.

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 # 实例续约的时间

El segundo paso
es modificar el archivo pom y modificarlo de acuerdo a la figura.
1
inserte la descripción de la imagen aquí

Servicio B Construir

El nombre del proyecto correspondiente al servicio A es: 02-eureka-client-b, ¡no cambie el lugar equivocado!
Similar al servicio A,
el primer paso
es modificar primero el archivo de configuración yml.
El código fuente es el siguiente:
he agregado comentarios uno por uno para lo que significa cada configuración, y primero lo cambio a mi manera.

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

El segundo paso
es modificar el archivo pom y modificarlo de acuerdo a la figura.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Comienza el servicio

Iniciar el registro

Primero inicie el centro de registro 01-eureka-servere 服用A和服务Binicie
el método de inicio: haga clic en el archivo de inicio, luego haga clic en el triángulo verde para seleccionar el modo de ejecución o el modo de depuración, y puede
inserte la descripción de la imagen aquí
ver la imagen a continuación, que indica que el inicio ha sido exitoso y el regreso el código de estado es 204.
注意:重点来了非常重点, ingrese directamente en la barra de direcciones del navegadorhttp://localhost:8761/

inserte la descripción de la imagen aquí
Si http://localhost:8761/regresa a esta página después de escribir, 恭喜你Eureka注册中心启动成功!vaya a iniciar el servicio.
inserte la descripción de la imagen aquí

Iniciar servicio A

Esta sigue siendo la forma de comenzar, tanto en modo de ejecución como en modo de depuración.
inserte la descripción de la imagen aquí
Después de que el inicio sea exitoso, se mostrará como se muestra en la figura a continuación, y la pantalla de estado es 204.
inserte la descripción de la imagen aquí
注意:重点来了非常重点, ingrese directamente en la barra de direcciones del navegador http://localhost:8761/, o acaba de abrir esta dirección, presione directamente F5 para actualizar la página. Se puede ver claramente que hay un servicio con un nombre de aplicación de:
arriba del centro de registro , que está registrado.Muy bien, continúe iniciando el servicio B.EUREKA-CLIENT-A
inserte la descripción de la imagen aquí

iniciar el servicio B

El servicio B todavía se inicia de la misma manera que el servicio A. Podemos ver claramente que actualmente hay 三个服务正在运行centros de registro, el servicio A y el servicio B. Vuelva al navegador, aún en la misma URL, y presione F5 para actualizar.
inserte la descripción de la imagen aquí
很好, puede ver que el servicio B también está registrado.

inserte la descripción de la imagen aquí

conclusión

Hasta ahora, se ha completado la realización de la función de registro de un centro de registro y dos módulos de servicio. De acuerdo con mi método para construir proyectos e implementación de código, los bloggers que no entienden los mensajes privados, pueden ver que tengo otros componentes. Esto
se usa comúnmente Spring Cloud组件, también están los servicios de cada componente en la segunda imagen, la construcción del centro de configuración de archivos nacos, la puerta de enlace escrita a mano, el fusible, etc., son todos los códigos fuente, los bloggers que lo necesiten pueden enviarme un mensaje privado, sin cargo, si tiene Si no lo entiende, responderé por usted de forma gratuita, ¡espero que pueda ayudar a todos!
Este es el final del intercambio en este número, y el próximo número compartirá el conejo para realizar llamadas remotas.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/xiaohua616/article/details/132000558
Recomendado
Clasificación