Directorio de artículos
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:
注册发现中心
服务注册与发现的组件
¿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 Eureka
y 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
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.
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
el segundo paso
es modificar EurekaServerApplication
la clase de inicio y agregar @EnableEurekaServer
anotaciones, 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: #服务端每间隔多少毫秒定期删除的操作(默认是30000(30秒))
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文件
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.
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.
Comienza el servicio
Iniciar el registro
Primero inicie el centro de registro 01-eureka-server
e 服用A和服务B
inicie
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
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/
Si http://localhost:8761/
regresa a esta página después de escribir, 恭喜你Eureka注册中心启动成功!
vaya a iniciar el servicio.
Iniciar servicio A
Esta sigue siendo la forma de comenzar, tanto en modo de ejecución como en modo de depuración.
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.
注意:重点来了非常重点
, 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
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.
很好
, puede ver que el servicio B también está registrado.
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.