1 utilizando Eureka
código cerrado un código cerrado cómo hacerlo?
Eureka
código cerrado, se puede utilizar otra vez de registro: Consul
,Zookeeper
2 Uso Zookeeper
de reemplazarEureka
2.1 Zookeeper
Introducción
Zookeeper
Es un 分布式协调工具
centro de configuración distribuido puede darse cuenta de registro de servicio y el descubrimiento, los centros de registro, middleware de mensajería,.
2.2 Entorno de construir
servidor de inicio ZK
Maven
información de dependencia
<dependencies>
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot整合eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
</dependencies>
application.yml
Perfiles de los integrantes
###订单服务的端口号
server:
port: 8002
###服务别名----服务注册到注册中心名称
spring:
application:
name: zk-member
cloud:
zookeeper:
connect-string: 127.0.0.1:2181
Perfil órdenes
###订单服务的端口号
server:
port: 8003
###服务别名----服务注册到注册中心名称
spring:
application:
name: zk-order
cloud:
zookeeper:
connect-string: 127.0.0.1:2181
ZK-miembro del servicio ZK-orden de salida y el servicio se pueden encontrar en el servidor de información del nodo correspondiente Zk
2.3 Zookeeper
, con la Eureka
diferencia
CPA
Teoría: un sistema distribuido no puede satisfacer C(一致性)
, A(可用性)
y P(分区容错性)
. Desde la partición en el sistema distribuido tolerante a fallos debe ser garantizada, por lo que sólo puede A
y el C
equilibrio entre. La Zookeeper
garantía es CP
, y Eureka
es AP
.
Consistency
(Consistencia): actualizar los mismos datos, todos los cambios de datos se sincronizanAvailability
(Disponibilidad): buen desempeño respuestaPartition tolerance
(Tolerancia partición): Fiabilidad
2.3.1 Zookeeper
es asegurar queCP
Cuando la lista de servicios de consulta en el registro, que puede tolerar regresado registro de unos pocos minutos antes de la información de registro, pero no puede aceptar los servicios directamente down
fuera disponible. Es decir, los requisitos de registro de servicios la disponibilidad de consistencia. Pero zk
hay una situación de este tipo, cuando master
un fallo de nodo ya que la red perdido el contacto con el otro nodo, los nodos restantes será re- leader
elección. El problema es que la elección leader
tiempo es demasiado largo, 30 ~ 120s
y todo el período de elección zk
de clúster no están disponibles, lo que llevó a la parálisis durante los servicios de registro electoral. En el entorno de despliegue en la nube, debido a problemas de red marcas zk
se agrupan perder master
nodo es una mayor probabilidad cosas van a suceder, aunque el servicio llegará a recuperarse, pero registró un largo tiempo debido a la elección a largo plazo no está disponible, no será tolerado.
2.3.2 Eureka
es asegurar queAP
Eureka
Ver para entender esto, y están diseñados para dar prioridad a garantizar la disponibilidad. Eureka
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
el cliente a uno Eureka
si encontramos la conexión falla, se cambiará automáticamente a los otros nodos o de registro, siempre que hay una Eureka
aún, usted puede garantizar los servicios de registro están disponibles (para asegurar la disponibilidad), pero encontró la información puede no estar actualizada (sin garantizar consistencia fuerte). Además, Eureka
hay un mecanismo de autoprotección, si hay más de un 85% en 15 minutos nodos son los latidos del corazón no es normal, que Eureka
se considera el cliente y el registro de un fallo en la red, aparecerán las siguientes situaciones:
Eureka
No se elimina porque durante mucho tiempo y no deben recibir los latidos del corazón expiró el servicio de registro de la listaEureka
Todavía puede aceptar el registro y consulta de solicitudes de nuevos servicios, pero no se sincronizarán con (es decir, para garantizar que el nodo actual sigue estando disponible) en otros nodos- Cuando la red es estable, la instancia actual de la nueva información de registro estará sincronizado con los otros nodos. Por lo tanto,
Eureka
puede ser un buen negocio debido a un fallo de la red causó la pérdida de algunos nodos en el contacto, pero no comozookeeper
que la totalidad de los servicios de registro paralizados.
3 Uso Consul
de reemplazarEureka
3.1 Consul
Introducción
Consul
Es un código abierto distribuido descubrimiento de servicios y el sistema de gestión de la configuración, la empresa HashiCorp Ir con el desarrollo del lenguaje.
Tiene muchas ventajas. Incluye: protocolo basado en balsa, es relativamente sencillo; chequeo de apoyo, mientras que apoya los protocolos HTTP y DNS apoyan WAN grupos a través de los centros de datos para proporcionar multiplataforma interfaz gráfica, soporte para Linux, Mac, Windows
Consul
Integrado SpringCloud
página web de aprendizaje: https://springcloud.cc/spring-cloud-consul.html
Consul
Descargar: https://www.consul.io/downloads.html
3.2 Consul
entorno para construir
Descargar la versión de la ventana de descarga oficial, descomprimir un archivo ejecutable.
Establezca las variables de entorno, vamos directamente se puede utilizar directamente en el cónsul misión en cmd. Añadir la ruta del directorio como cónsul en la parte posteriorD:\soft\consul_1.1.0_windows_amd64
Comenzar la vida cónsul
consul agent -dev -ui -node=cy
-dev
El modo de servidor de desarrollo se activa-node
Nodo llamado cy-ui
Puede utilizarse para interfaz de acceso, el acceso predeterminado
Prueba de acceso Dirección: http: // localhost: 8500
3.3 Consul
Cliente
Maven
información de dependencia
<dependencies>
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringCloud consul-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
</dependencies>
Perfil de cliente
###eureka 服务端口号
server:
port: 8502
spring:
application:
name: consul-order
####consul注册中心地址
cloud:
consul:
host: localhost
port: 8500
discovery:
hostname: 192.168.18.220