Centro de registro de Eureka-SpringCloud (4)

¿Qué es Eureka?

  Eureka es como Didi Chuxing, responsable de gestionar y registrar información sobre proveedores de servicios.

  La persona que llama al servicio no necesita encontrar el servicio por sí mismo, pero le dice a Eureka sus necesidades, y luego Eureka le dirá el servicio que satisfaga sus necesidades.

  Al mismo tiempo, el proveedor de servicios y Eureka serán monitoreados a través de un mecanismo de "latido". Cuando un proveedor de servicios tiene un problema, Eureka lo eliminará automáticamente de la lista de servicios.

  Esto permite el registro automático, el descubrimiento y la supervisión del estado de los servicios.

 

Infraestructura de Eureka

  Tres roles centrales en la arquitectura Eureka:

  Centro de registro de servicios:

    La aplicación de servidor de Eureka proporciona funciones de registro y descubrimiento de servicios.

  Proveedor de servicios:

    El servicio debe usarse, puede ser una aplicación SpringBoot, o puede implementarse con cualquier otra tecnología, siempre que proporcione servicios de estilo Rest.

  Servicio a los consumidores:

    La aplicación para el consumidor obtiene la lista de servicios del centro de registro, para conocer la información de cada parte del servicio y saber dónde llamar a la parte del servicio.

 

Servidor Eureka de alta disponibilidad

  EurekaServer es un registro de servicios. EurekaServer puede ser un clúster, formando un centro Eureka altamente disponible.

  Múltiples EurekaServers registrarán servicios entre sí. Cuando el proveedor de servicios se registra con un nodo en el clúster EurekaServer, el nodo sincronizará la información del servicio con cada nodo en el clúster para lograr la sincronización de datos.

  Por lo tanto, no importa que el cliente acceda a ningún nodo en el clúster EurekaServer, se puede obtener la información completa de la lista de servicios.  

  El denominado centro de registro de alta disponibilidad en realidad está registrando EurekaServer como un servicio, de modo que múltiples EurekaServers pueden descubrirse entre sí y formar un clúster.

 

Proveedor de servicios

  Los proveedores de servicios deben registrar los servicios con EurekaServer y completar la renovación del servicio y otras tareas.

  Cuando se inicia el proveedor de servicios, verificará si el parámetro eureka.client.register-with-eureka = true es correcto. De hecho, el valor predeterminado es verdadero. 

  Si el valor es verdadero, iniciará una solicitud de descanso a EurekaServer y llevará su propia información de metadatos. EurekaServer almacenará esta información en una estructura de mapa de doble capa.

    La clave del mapa de la primera capa es la identificación del servicio, generalmente en la configuración: propiedad spring.application.name.

    La clave del mapa de la segunda capa es la identificación de la instancia de servicio, generalmente host + serviceld + port Por ejemplo: localhost: service-provider: 8081

    El valor es un objeto de instancia de un servicio, es decir, un servicio puede iniciar varias instancias diferentes al mismo tiempo para formar un clúster.

  Una vez completado el servicio de registro, el proveedor de servicios mantendrá un latido (enviará una solicitud de Descanso a EurekaServer regularmente), dígale a EurekaServer que el servicio aún existe, este comportamiento se llama renovación del servicio (renovación).

  Hay dos parámetros importantes que pueden modificar el comportamiento de la renovación del servicio:

eureka: 
  instancia: 
    arrendamiento -expiración-duración-en-segundos: intervalo de falla del servicio 90 #, el valor predeterminado es 30 segundos 
    arrendamiento -intervalo-renovación-en-segundos: 30 # tiempo de renovación del servicio, el valor predeterminado es 90 segundos

  En otras palabras, de manera predeterminada, cada 30 segundos, el servicio envía una solicitud de Descanso al registro para demostrar que todavía está vivo.

  Si no se envía durante más de 90 segundos, EurekaServer considerará que el servicio está inactivo y será eliminado de la lista de servicios.

  No modifique estos dos valores en el entorno de producción, solo por defecto. 

  En el entorno de desarrollo, este valor es demasiado largo. A menudo desconectamos un servicio. Eureka todavía piensa que el servicio aún está vivo, por lo que puede ajustarse adecuadamente.

 

Sirviendo a los consumidores

  Cuando se inicia el consumidor del servicio, detectará el valor del parámetro eureka.client.fetch-Registry = true, si es verdadero, extraerá la lista de servicios EurekaServer para la copia de seguridad de solo lectura y luego lo almacenará en caché localmente.

  Además, los datos se recuperarán y actualizarán cada treinta segundos, que pueden modificarse mediante los siguientes parámetros.

eureka: 
  cliente: 
    registro -fetch-intervalo-segundos: 5

  En un entorno de producción, no es necesario modificar este valor.

  En el entorno de desarrollo, para obtener rápidamente el estado del servicio, puede configurarlo más pequeño.

 

Rechazo de falla

  Cuando el servicio se cierra normalmente, envía una solicitud de descanso para el servicio fuera de línea a EurekaServer, diciéndole al centro de registro del servicio: "Me voy a desconectar".

  Después de recibir la solicitud, el centro de servicio establece el servicio en estado fuera de línea.

  A veces, el proveedor de servicios no se desconecta normalmente y es posible que el servicio no funcione correctamente debido a un desbordamiento de la memoria o una falla de la red.

  EurekaServer necesita eliminar dichos servicios de la lista de servicios.

  Por lo tanto, EurekaServer iniciará un servicio de temporizador para eliminar todos los servicios fallidos cada 60 segundos.

  Se puede modificar mediante el parámetro eureka.server.eviction-interval-timer-in-ms, la unidad es milisegundos.

  No modifique el entorno de producción.

  Sin embargo, esta velocidad traerá grandes inconvenientes para el desarrollo. Después de reiniciar el servicio, Eureka reaccionará en 60 segundos, por lo que se puede ajustar adecuadamente durante la fase de desarrollo.

 

Autoprotección

  Al cerrar un servicio, verá una advertencia en el panel de Eureka.

  Esto es lo que activa el mecanismo de autoprotección de Eureka. Cuando un servicio no puede renovar sus latidos a tiempo, Eureka contará si la proporción de instancias de servicio que fallaron en los últimos 15 minutos supera el 85 por ciento.

  En un entorno de producción, debido a retrasos en la red y otras razones, es probable que la proporción de instancias de latidos fallidos supere el estándar, pero no es apropiado excluir el servicio en este momento.

  Debido a que el servicio puede no estar inactivo, Eureka protegerá la información de registro de la instancia actual y no la eliminará.

  Es muy efectivo en el entorno de producción, asegurando que la mayoría de los servicios aún estén disponibles, pero causará algunos problemas en el desarrollo.

  Por lo tanto, el modo de autoprotección se desactivará durante la fase de desarrollo.

eureka: 
  server: 
    enable -self-preservation: false # Deshabilita el modo de autoprotección (el valor predeterminado está activado ) 
    desalojo -interval-timer-in-ms: 1000 # Tiempo de intervalo para buscar servicios fallidos (valor predeterminado 60 * 1000ms)

 

Supongo que te gusta

Origin www.cnblogs.com/guancangtingbai/p/12690859.html
Recomendado
Clasificación