Registro springcloud ----- Cónsul

contorno

  • Los principales escenarios: descubrimiento de servicios, el aislamiento de servicio, la configuración de servicio
  • HashiCorp empresa desarrolla, utilizar el lenguaje Go
  • Una función de registro y marco de descubrimiento de servicios, distribuidos protocolo de consenso, control de estado clave / valor del almacén, soluciones de centros de datos múltiples
  • algoritmos uso balsa para garantizar la coherencia, más directo que el complejo algoritmo Paxos, comparativamente hablando, zookeeper utiliza Paxos, y ETCD utilizado es el Raft
  • Soporta HTTP y la interfaz de protocolo DNS
  • interfaz de gestión web oficial
  • Cónsul es una consistencia sólida (CP): La inscripción será más lento que Eureka, el éxito requiere un nodo mayoría considera sólo escribe un registro exitoso. Además, cuando el líder de colgar, durante la reelección de todo el cónsul no está disponible para mantener la consistencia fuerte a expensas de la facilidad de uso.

Descargar e instalar

  • Descargar: https: //www.consul.io/downloads.html
  • De acuerdo con sus propios sistemas informáticos para descargar los archivos correspondientes a la versión que he descargado ventana, instalación directa.
  • Descomprimir el archivo descargado a D: \ en el directorio de software \ cónsul, a continuación, ejecutar el agente cónsul -dev -client = 0.0.0.0 comando para iniciar el cónsul
  • A la entrada de http://127.0.0.1:8500/ navegador, puede iniciar sesión en la interfaz de administración cónsul Aquí Insertar imagen Descripción
    a cónsul aquí se puede empezar a utilizar el

registro de servicio

cónsul de apoyo para registrar a través de http o forma dns. Estamos más preocupados por los protocolos http, echar un vistazo a es cómo registrar.

  • El primero es encontrar las necesidades de conexión para el registro de envío: http: // ip: 8500 / v1 / Catálogo / registro
  • datos de la Interfaz, forma JSON:
{
	"Datacenter":"dc1",
	"Node":"node01",
	"Address":"192.168.74.102",
	"Service":{
		"ID":"mysql-01",
		"Service":"mysql",
		"tags":["master","v1"],
		"Address":"192.168.74.102",
		"Port":3306
	}
}
  • Prueba, en el que puedo utilizar un software de simulación para enviar la solicitud HTTP - Su Fei asistente de desarrollo, envía una solicitud PUT Aquí Insertar imagen Descripción
    Aquí Insertar imagen Descripción
    la prueba es satisfactoria, se puede observar, el alto grado de integración cónsul, puede ser muy fácil de desarrollar. Otra interfaz de adquisición de servicios, está interesado puede mirar a Baidu, no está aquí para mostrar, en springcloud, la introducción de esta dependencia tiene todo lo envuelve.

springcloud introdujo cónsul

proveedores de servicios de consumo y un servicio

Estoy aquí para seguir el ejemplo de Eureka, mediante la construcción de dos springboot servicio simple, que además de un proyecto springboot ordinaria, lo que no es

La introducción de la operación depende cónsul relacionados

<!-- springcloud 提供的对基于consul 的服务发现 -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!-- acuator 的健康检查 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

configuración

server:
  port: 9001 #端口
spring:
  application:
    name: product-service #服务名称
  #配置consul
  cloud:
    consul:
      host: 127.0.0.1 #注册中心的主机ip地址
      port: 8500 #注册中心的端口
      discovery:
        #是否需要注册
        register: true
        #注册的实例id(唯一标志)
        instance-id: ${spring.application.name}-1
        #服务的名称
        service-name: ${spring.application.name}
        #服务的请求端口
        port: ${server.port}
        #指定开启ip地址注册
        prefer-ip-address: true
        #当前服务的请求ip
        ip-address: ${spring.cloud.client.ip-address}

llamada de servicio

Al igual que con el proveedor de servicios, el consumidor del servicio configurado, a continuación, llamar al servicio de los consumidores de servicios. Del mismo modo, necesitamos el apoyo restTemplate, Además, las dependencias cónsules están también integrados de la cinta, y por lo tanto, se puede tratar restTemplate

@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    return new RestTemplate();
}

A continuación, utilice el acceso a los datos pertinentes restTemplate del proveedor de servicios

//注入restTemplate
@Autowired
private RestTemplate restTemplate;


@RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
public String get(@PathVariable Long id){
    //通过instance里面的信息,组合成url,访问服务接口
    return restTemplate.getForObject("http://product-service/product/getProduct/"+id,String.class);
}

Autocomprobación

Publicado 22 artículos originales · ganado elogios 0 · Vistas 996

Supongo que te gusta

Origin blog.csdn.net/weixin_43119903/article/details/104879863
Recomendado
Clasificación