Esto es lo que necesita Eureka!

navegación de páginas blog personal (haga clic a la derecha de enlace para abrir un blog personal): Daniel lo lleve en la pila de tecnología 

En primer lugar, ¿cuál es Eureka

Eureka es una fuente de productos de Netflix empresa abierta, que está basado en REST (Representational State Transfer) servicios, principalmente para la nube de AWS. Eureka ofrece un completo registro de servicio y servicio de descubrimiento de lograr la realización, la primavera es uno de los más importantes componentes del sistema de la nube.

En términos simples Eureka código abierto Netflix es un registro de servicio y productos de descubrimiento, y proporciona un cliente en java. Por supuesto, después de Eureka esfuerzos para mejorar springcloud, se pueden usar en cualquier escenario requiere el uso de registro.

Eureka consta de dos componentes: el servidor y el cliente Eureka. Eureka es el servidor de registro. Eureka es un cliente en java cliente, para simplificar la interacción con el servidor, el equilibrador de carga como de votación, para proporcionar conmutación por error para el servicio y soporte.

Aquí es los escenarios de uso Eureka

Visto desde Eureka función de servidor anterior como registro, proporcionando características y servicios de descubrimiento y registro.

proveedores de servicios de proveedor de servicios, sus servicios serán almacenados en Eureka Server, durante la comprobación de los latidos del corazón mediante la ejecución de los servicios estatales.

Servicio al Consumidor de la persona que llama, obtener una lista de servicio registrada de Eureka servidor, busque la dirección de las correspondientes llamadas de servicio y uso.

Dos conceptos básicos, Eureka

1, Eureka Servidor: servidor de registro

El registro de servidor central extranjera proporciona tres funciones principales:

(1) Registro de Servicio

Cuando se inicia el proveedor de servicios, se registrará a través de Eureka Eureka cliente a servidor de información, Eureka servidor almacenará información sobre este servicio, de dos pisos mecanismo de caché interna Eureka Server para mantener todo el registro.

(2) proporcionan registro

consumidor de servicios para invocar un servicio, si no hay registro de caché de cliente de Eureka, se pondrá la última Registro de Eureka servidor.

(3) Estado de sincronización

Eureka Cliente Al registrarse, el mecanismo de los latidos del corazón de Eureka servidor y sincronizar el estado actual del cliente.

2, Eureka Cliente: Registro de cliente

Eureka cliente es un cliente en java para simplificar la interacción con el servidor de Eureka. Eureka cliente va a tirar, actualizar información de la caché del servidor en Eureka. Por eso, cuando todos los nodos del servidor de Eureka derribo, los consumidores de servicios todavía puede usar la información en la memoria caché para encontrar el proveedor del servicio, pero no habrá información inconsistente cuando el servicio ha cambiado.

3, Registro: Servicio de Registro

Los proveedores de servicios, se registrará en el registro, el proveedor de servicios es también un cliente de Eureka. Cuando Eureka cliente se registre en el Eureka Server, que proporciona sus propios metadatos, tales como direcciones IP, puertos, URL indicador de estado de funcionamiento, en casa y así sucesivamente.

4, Renovar: Contrato de servicios

Eureka El cliente envía un latido del corazón para renovar cada 30 segundos. Para informar a Eureka Server a través de la renovación de la Eureka Cliente funcionando normalmente, sin problemas. Por defecto, si Eureka Server no recibe Eureka renovación de cliente dentro de los 90 segundos, del lado del servidor se eliminará de la instancia del registro, se puede configurar para este evento, por lo general no se recomienda para el cambio.

5, desalojo Servicio retira

Cuando Eureka Client y Eureka Server ya no tienen un latido del corazón, instancia de servicio Eureka servidor será eliminado de la lista de servicio registrada, un servicio eliminado.

6, cancelación: desconectado servicio

Eureka cliente le gustaría Eureka Server para enviar una solicitud de cancelación, después de enviar la solicitud, la información del Registro instancia de cliente de ejemplo Eureka Server se elimina cuando se cierra el programa. La solicitud no de forma automática la línea de montaje, tiene que ser llamado en los contenidos:

DiscoveryManager.getInstance().shutdownComponent();

7, GetRegistry: obtener información de la lista de registro

Eureka registro del cliente para obtener información desde el servidor, y lo almacena en caché localmente. El cliente utilizará esta información para encontrar servicios adicionales para hacer llamadas remotas. La lista de registro se actualiza la información de forma periódica (cada 30 segundos). Cada devolver una lista de información de registro puede diferir de la caché de la información de cliente de Eureka, Eureka cliente automáticamente.

Si por alguna razón el registro de información de lista de información no se puede coincidir oportuna, Eureka cliente volverá a adquirir toda la información del registro. Eureka información de la lista de registro del servidor de caché, así como toda la información de registro para cada aplicación se comprime, el contenido comprimido y el contenido no es exactamente la misma compresión. Eureka Eureka cliente y servidor pueden comunicarse utilizando formato JSON / XML. Por defecto de compresión Eureka cliente JSON utilizando la información para obtener la lista de los formularios de inscripción.

8, remoto de llamadas: remoto de llamadas

Cuando Eureka cliente adquiere desde el centro de registro de la información del proveedor de servicios, puede llamar al servicio correspondiente a través de peticiones HTTP, hay varios proveedores de servicios, el cliente de Eureka Cliente carga automáticamente el equilibrio automático de la cinta.

En tercer lugar, el mecanismo de autoprotección

Por defecto, su dinero, si Eureka Server no recibe un latido del corazón instancias de servicio micro dentro de los 90 segundos, se cancelará la instancia. Pero en la microarquitectura son por lo general a través del proceso de las llamadas de servicio entre los servicios, las comunicaciones de red a menudo se enfrentan con muchos problemas, como el estado de micro-servicio es normal, la partición de la red falla, lo que resulta en este caso fue cancelada.

Numerosos ejemplos se dan de baja dentro de un período fijo de tiempo, podría amenazar seriamente la disponibilidad de una arquitectura de micro-servicio, con el fin de resolver este problema, Eureka ha desarrollado un mecanismo de auto-protección, entonces ¿cuál es el mecanismo de autoprotección?

Eureka Server durante la operación fallará para contar los latidos del corazón proporción es inferior al 85% en 15 minutos, si menos de 85%, Eureka Servidor entrar en mecanismo de auto-protección.

Una vez en marcha el mecanismo de autoprotección Eureka servidor, se le solicitará la página:

Eureka Server en el mecanismo de autoprotección, las siguientes situaciones:

(1) Eureka ya no se eliminará porque durante mucho tiempo y no deben recibir los latidos del corazón expiró el servicio de registro de la lista.

(2) Eureka todavía ser capaz de aceptar nuevos servicios de registro y de consulta, pero no se sincronizará a (es decir, para asegurar que el nodo actual es todavía disponible) en otros nodos.

(3) Cuando la red es estable, la instancia actual de la nueva información de registro se sincroniza con los otros nodos.

Eureka es un mecanismo de mecanismo de autoprotección para evitar que el servicio proporcionado homicidio. Cuando los clientes individuales aparecen contacto perdido latido del corazón, entonces ese es el problema del cliente, quitar el cliente, cuando Eureka capturado una gran cantidad de insuficiencia cardíaca, entonces eso podría ser un problema en la red, en el mecanismo de autoprotección; cuando una recuperación de los latidos del corazón del cliente, Eureka se cerrará automáticamente el mecanismo de autoprotección.

Si el proveedor de servicios junto a la línea de montaje en un período de protección que no son normales, los consumidores de servicios obtendrá una instancia de servicio válido, el fracaso se llama. Para este problema requiere que los consumidores de servicios tienen algunos mecanismos de alta disponibilidad tales como reintentos, disyuntores.

Cuatro, Eureka alta disponibilidad Cluster

En teoría, la dirección de memoria caché local de servicio al consumidor del proveedor de servicios, incluso si Eureka servidor se cae, no va a afectar a las llamadas entre el servicio, pero cuando se trata de la línea de servicio, la información caché local aparecerá desviación, afecta a la estabilidad del conjunto de micro-servicios, por tanto, aumente agrupaciones Eureka Server para mejorar la alta disponibilidad de toda la arquitectura, es muy necesario.

Como puede verse a partir de la figura entre Eureka Cluster Replicar Server para Sincronizar datos entre sí a través, no distingue entre el nodo maestro y cada nodo esclavo, todos los nodos son iguales. En esta arquitectura, cada aumento registrado la disponibilidad de los nodos entre sí, cada nodo tiene que añadir uno o más enlaces a otros nodos ServiceUrl válida.

Si una estación de tiempo de inactividad Eureka Server, Eureka cliente solicita automáticamente conmuta al nuevo nodo Eureka Server. Cuando el tiempo de inactividad del servidor restaurado, Eureka nuevo se incorpora a la gestión de clusters de servidores. Cuando el nodo comienza a aceptar solicitudes de cliente, todas las operaciones se replicarán entre los nodos, la solicitud a todos los nodos otras conoce actualmente en Eureka Server.

También puede seguir a la sincronización del servidor de Eureka es un principio muy simple: mientras hay una conexión de nodo de borde, puede sincronizar la información y difusión. Por lo tanto, si hay varios nodos, entre los nodos sólo necesitan ser unidos de dos en dos para formar un pasaje, la otra información puede ser compartida registro. Sino también el cliente de Eureka, Eureka entre múltiples servidor se realiza a través de un servicio de sincronización de registro P2P cada Eureka servidor.

Estado entre clúster Eureka Server está utilizando la sincronización asíncrona, no hay ninguna garantía del estado entre los nodos debe ser el mismo, pero básicamente puede garantizar el estado final es el mismo.

Cinco, partición Eureka

Eureka ofrece la Región y Zona de partición de dos conceptos:

 Región: se puede entender como diferentes regiones geográficamente, como Asia, en China, Dalian y así sucesivamente. No hay un tamaño límite específico. De acuerdo a las circunstancias específicas del proyecto, puede ser yo racional división Región.

Zona: puede entenderse simplemente como una sala específica dentro de la región, como la región se divide en Dalian, Dalian tiene dos habitaciones, se puede dividir la región de nuevo bajo la zona 1, zona 2 de dos zonas.

Seis, la garantía de Eureka AP

Eureka servidor cada nodo son iguales, colgar un par de nodos no afectará el nodo normal, los nodos restantes todavía pueden proporcionar servicios de registro e investigación. Y Eureka cliente al registrar un Eureka, si se comprueba la conexión falla, se cambiará automáticamente a otros nodos. Mientras todavía hay un servidor de Eureka, usted puede garantizar los servicios de registro están disponibles (para asegurar la disponibilidad), pero encontró la información puede no estar actualizada (no garantiza consistencia fuerte).

Siete, el flujo de trabajo de Eureka

1, Eureka servidor se inicia con éxito, espera a que el servidor registra.

Durante el inicio Si configura el clúster, a través de la sincronización de registro de replicación entre grupos, cada uno de Eureka servidor existe información independiente del registro de servicio completo.

2, Eureka cliente para iniciar el registro basado en la configuración de los servicios de registro de direcciones del servidor de Eureka.

3, Eureka cliente envía un latido del corazón a Eureka servidor cada 30 segundos para demostrar que el servicio al cliente es normal.

4 nodo, cuando los interiores segundos Eureka Eureka Server90 cliente no recibe un latido del corazón, el registro se considera falla, la instancia se da de baja.

5, estadísticas unidad de tiempo Eureka servidor a un gran número de Eureka cliente no envía un latido del corazón, se considera posible que la red anomalía en el mecanismo de autoprotección, ya no es el envío de los latidos del corazón excluyendo cliente.

6, cuando el latido del corazón Eureka Client volvió a la normalidad, Eureka Servidor salir automáticamente el mecanismo de auto-protección.

7, Eureka Cliente cantidad o el calendario de acceso gradual a los servicios de registro del registro y la información adquirida se almacena en caché localmente.

8, cuando una llamada de servicio, Eureka cliente se iniciará la caché local para encontrar y obtener servicios. Si no se puede obtener, a partir de centro de registro de actualización del registro, y luego se sincroniza con la memoria caché local.

9, Eureka cliente al servidor de destino para obtener información, iniciar una llamada de servicio.

10, Eureka cliente envía a la solicitud de cancelación cerrada Eureka Server, ejemplo Eureka servidor eliminado del registro.

Ocho, el almacenamiento de datos del servidor de Eureka

almacenamiento Eureka servidor de datos en dos capas: la capa de almacenamiento de datos y la capa tampón.

Registro para registrar la información de servicio de la capa de almacenamiento de datos en el servidor de Eureka, la capa de almacenamiento en caché de datos es el resultado de los envases, puede ser devuelto directamente a las llamadas de clientes Eureka.

capa de almacenamiento de datos del servidor de Eureka es el doble ConcurrentHashMap, sabemos ConcurrentHashMap es seguro para hilos y recogida Mapa eficiente.

private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry= new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>();

ConcurrentHashMap primera clave de capa = nombre de la aplicación spring.application.name se ha registrado instancia de cliente; valor es ConcurrentHashMap anidada.

Nested ConcurrentHashMap clave = segunda capa instanceId es el único caso de la ID de servicio, el valor del objeto de arrendamiento, Lease almacenar información de objeto de registro de todos los de este ejemplo, incluyendo IP, el puerto, y otras propiedades.

De acuerdo con esta estructura de almacenamiento que podemos encontrar, Eureka servidor es la primera capa de las tiendas de todo el nombre del servicio, el nombre del servicio que corresponden a la información y ejemplos, que se aplica la primera capa de acuerdo con el nombre del servicio de esta dimensión a la tienda de la segmentación:

应用名1:应用1实例 Map
应该名2:应用2实例 Map
...

La segunda capa es un ejemplo de la ID única se almacena, a continuación, la estructura de memoria final de acuerdo con este formato de datos es:

                :  应用1实例A:实例A的注册信息 
应用名1:应用1实例:  应用1实例B:实例B的注册信息 
                :  应用1实例C:实例C的注册信息
                :  ....
-----------------              
                :  应用2实例F:实例F的注册信息 
应该名2:应用2实例:  应用2实例G:实例G的注册信息 
                :  ... 

...

estructura de datos de la capa de almacenamiento de datos como se muestra a continuación:

Cuando tales como el estado del servicio ha cambiado, sincroniza los datos del registro de la información de Eureka servidor, tales como los servicios de registro, mientras que excluyendo los servicios prestados.

Nueve, caché Eureka mecanismo

Eureka servidor con el fin de proporcionar la eficiencia de la respuesta, una estructura de dos capas de la memoria caché, la información de registro necesaria Eureka Client almacena directamente en la estructura de la memoria caché.

La primera memoria caché de nivel: readOnlyCacheMap, esencialmente ConcurrentHashMap, dependiente de los datos de sincronización de tiempo de readWriteCacheMap, el tiempo predeterminado de 30 segundos.

readOnlyCacheMap: CurrentHashMap es una memoria caché de solo lectura Esto se utiliza principalmente para que el cliente para obtener información de registro, actualiza su caché, dependiendo del temporizador de actualización, y readWriteCacheMap hizo mediante la comparación de los valores, si los datos son inconsistentes, datos de lugares readWriteCacheMap. prevalecerá.

caché de segundo nivel: readWriteCacheMap, es esencialmente caché de guayaba.

datos de sincronización primario readWriteCacheMap en la capa de almacenamiento: readWriteCacheMap. La determinación de si o no el caché cuando los datos adquiridos en la memoria intermedia, si no existe los datos, para cargar por el método CacheLoader de carga, después de cargar los datos en la memoria caché con éxito, junto con los datos.

readWriteCacheMap tiempo de caducidad de la caché, el valor predeterminado es de 180 segundos cuando la línea de servicio, los datos de este caducidad de la caché, registro, cambios de estado, se borrará.

Cuando la cantidad total de Eureka adquirida Cliente o de adquisición de datos de la subasta se iniciará un tampón; si uno no existe en la memoria caché, y luego desde adquiere el caché secundario; si no hay caché secundaria, esta vez la primera capa de almacenamiento la sincronización de caché de datos, entonces adquiere desde la caché.

Capa Eureka servidor por el mecanismo de almacenamiento en caché, puede ser muy eficaz para mejorar el tiempo de respuesta del servidor Eureka por la capa de almacenamiento de datos y la capa tampón se corta para proporcionar diferente soporte de datos de acuerdo con los escenarios de uso.

, ejemplos de códigos de diez

1. Marco del proyecto:

2, el servidor de Eureka application.yml

server:
  port: 9000
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    instance:
      prefer-ip-address: true

3, clase inicio del cliente

package cn.itcast.product;

...

@SpringBootApplication
@EntityScan("cn.itcast.product.entity")
@EnableEurekaClient
public class ProductServiceApplication {
   public static void main(String[] args) {
      SpringApplication.run(ProductServiceApplication.class, args);
   }
}

4, algunos controlador básico, servicio, frijol no escribir, usando un resorte base de datos de manera JPA datos de consultas.

5, iniciar el servicio

Eureka servidor -> Eureka providor -> Consumidor Eureka

Eureka servidor

6, Eureka consumidor servicios de llamadas

resumen XI

Explicar el concepto básico de Eureka, Eureka mecanismo de autoprotección, clusters de alta disponibilidad Eureka. Mediante el análisis del principio de Eureka, Eureka puede sentir claramente el ingenioso diseño, a través de una serie de mecanismos, la solución perfecta para el registro de la estabilidad y alta disponibilidad.

orden Eureka para proteger el registro de alta disponibilidad, fuerte consistencia de los datos no tolerante, nodo de servicio de datos pueden ser datos inconsistentes entre Eureka cliente pueden ser inconsistentes. Más adecuado abarcar varias habitaciones, la disponibilidad del servicio de registro exigentes escenarios de uso.

aprendizaje adjunta Java / C / C ++ / máquina / Algoritmos y Estructuras de Datos / front-end / Android / Python / programador de lectura / libros individuales libros Daquan:

(Haga clic en la derecha para abrir allí en el blog personal en seco): seca Técnica de floración
===== >> ① [Java Daniel lo lleve en el camino a avanzado] << ====
===== >> ② [+ acm algoritmo de estructura de datos Daniel lo lleve en el camino a avanzado] << ===
===== >> ③ [base de datos de Daniel lo lleve en el camino a avanzado] << == ===
===== >> ④ [Daniel cliente web para llevarlo en el camino a avanzado] << ====
===== >> ⑤ [pitón máquina de aprendizaje y Daniel le llevará a la entrada camino avanzada] << ====
===== >> ⑥ [arquitecto Daniel lo lleve en el camino a avanzado] << =====
===== >> ⑦ [C ++ Daniel avanzó para llevarlo en el camino] << ====
===== >> ⑧ [ios Daniel lo lleve en el camino a avanzado] << ====
=====> > ⑨ [seguridad web Daniel lo lleve en el camino a avanzado] << =====
===== >> ⑩ [sistema operativo Linux y Daniel se toman en el camino a avanzado] << = ====

No hay frutas consumidas, espero que jóvenes amigos, amigos desea aprender técnicas, superando todos los obstáculos en el camino de la carretera determinada para atar en la tecnología, entender el libro, y luego golpear en el código, entender el principio, e ir a la práctica, se se le dan vida, su trabajo, su futuro un sueño.

Publicado 47 artículos originales · ganado elogios 0 · Vistas 267

Supongo que te gusta

Origin blog.csdn.net/weixin_41663412/article/details/104893065
Recomendado
Clasificación