zuul world tutorial tools que parte microservicios hello example español arquitectura spring spring-cloud netflix-eureka

world - spring cloud tutorial



¿Qué es el servicio Eureka, el cliente Eureka, la instancia Eureka y el servidor Eureka? (4)

Estoy aprendiendo la nube de primavera de Netflix al leer este artículo ; sin embargo, empecé a confundirme con la terminología diferente de este artículo, son:

  1. Servicio de eureka. A mi entender, es un servicio ordinario (específicamente un microservicio) que se ejecuta en un uri único (es decir, un servicio por uri). Decir localhost:12000 . Se puede registrar en el servidor Eureka.

  2. Cliente Eureka. ¿Lo mismo que el servicio de Eureka?

  3. Servidor Eureka. A mi entender, es el servidor que podemos inspeccionar, descubrir y administrar un montón de Microservicios que construimos, que normalmente se ejecutan en localhost:8761

  4. Instancia Eureka. Estoy confundido por lo que se refiere, lo mismo que el cliente Eureka?

También en este artículo, se menciona eureka.client en config y EurekaClient en la API de Netflix, ¿se están refiriendo a lo mismo?

Por favor, dígame qué significan estos cuatro términos y corríjame si me equivoco. ¡Gracias!

================================= ACTUALIZACIÓN =============== ===================

En el artículo decía:

@EnableEurekaClient convierte la aplicación en una "instancia" de Eureka (es decir, se registra a sí misma) y en un "cliente" (es decir, puede consultar el registro para localizar otros servicios).

Así que parece que la instancia de Eureka es la misma que la del servicio de Eureka. Si bien Eureka Client es una instancia especial que puede consultar otras instancias / servicios.


Definiciones

Servidor Eureka

El servidor de descubrimiento. Contiene un registro de servicios y una API REST que se puede usar para registrar un servicio, cancelar el registro de un servicio y descubrir la ubicación de otros servicios.

Servicio Eureka

Cualquier aplicación que se pueda encontrar en el registro del Servidor Eureka y sea detectable por otros. Un servicio tiene un identificador lógico a veces llamado VIP, a veces llamado "id de servicio", que puede referirse a una o más instancias de la misma aplicación.

Eureka Instance

Cualquier aplicación que se registre con el servidor Eureka para ser descubierta por otros

Cliente Eureka

Cualquier aplicación que pueda descubrir servicios.

Preguntas

¿Cómo puede una aplicación ser tanto una instancia de Eureka como un cliente de Eureka?

Las aplicaciones a menudo necesitan estar disponibles para que otras las usen (de modo que sean una instancia), mientras que al mismo tiempo necesitan descubrir otros servicios (de modo que sean un cliente).

¿Un cliente de Eureka tiene que ser una instancia de Eureka?

No. A veces, una aplicación no tiene nada que ofrecer y es solo una persona que llama a otros servicios. A través de la configuración ( eureka.client.register-with-eureka=false ), puede indicarle que no se registre como una instancia. Por lo tanto, solo es un cliente Eureka, ya que solo descubre otros servicios.


Tomemos un ejemplo.

Spring-cloud-netflix-turbine usa Eureka para agregar las métricas de los micro servicios individuales. Necesita saber la dirección de cada instancia de microservicio que se ejecuta en cualquier momento en la nube. El número de instancias puede subir y bajar.

Servidor Eureka: la turbina consulta al servidor Eureka para obtener acceso al registro. El uso del registro determina todos los microservicios participantes, su punto final para llegar y más.

Servicio Eureka: La información proporcionada por el servidor Euerka a la turbina (lista de Micro Services participantes) es el servicio. Un servidor podría proporcionar múltiples servicios.

Instancia de Eureka Todos los microservicios que desean que se agreguen sus métricas son instancias de Eureka. Las instancias no solo pueden consultar el registro, sino que también pueden registrarse, cancelar el registro, proporcionar un ritmo cardíaco para mantenerse registrados, etc.

Eureka Client Turbine es el cliente. Solo consulta el registro para determinar las instancias en ejecución de Micro Services.


Yo diría que estos términos se usan un poco ambiguamente, esto es lo que creo que significan en el artículo:

  • Cliente Eureka : puede ser un microservicio que está listo para funcionar, por lo que se registra en el servidor Eureka, por ejemplo, una API para alguna aplicación, o alguna aplicación que va al servidor y solicita direcciones para un microservicio específico.

  • Eureka Instance : una sola instancia de un microservicio (puede agregar más instancias del mismo microservicio a medida que crece su carga, es decir, escala horizontal).

  • Servicio Eureka : parece que cuando registra un microservicio como Cliente Eureka, obtiene un Servicio Eureka registrado con una ID.

  • Eureka Server : un servidor donde los microservicios pueden registrarse para que otros puedan descubrirlos.

Acerca de la actualización que agregó:

La instancia de Eureka no debe confundirse con el servicio de Eureka. El Servicio Eureka se refiere al grupo de instancias de microservicio registradas en el Servidor Eureka que proporcionan el mismo servicio.

Acerca de la anotación @EnableEurekaClient , le dice lo siguiente al marco: hola Spring, soy una instancia del microservicio X, así que por favor regístrame en el Servidor Eureka (con propiedades eureka.instance.* ), Y también quiero descubrir otros servicios, así que cree el bean cliente de descubrimiento necesario para mí (con las propiedades eureka.client.* ).

En resumen, esta anotación llamada @EnableEureka Client hace ambas cosas, tal vez de ahí viene la confusión. Pero Instancia y Cliente son conceptos diferentes, aunque se usan indistintamente en el artículo.


Creo que se parecen a esta foto.

  1. Un cliente de Eureka se registra en un servidor de Eureka.
  2. Debido a que una instancia de Eureka se registra en el servidor Eureka, es un cliente.
  3. Debido a que un Servicio Eureka ofrece una API a otros, puede ser descubierto por otros, por lo que es una Instancia.