Descubrimiento de servicios en sistemas distribuidos utilizando el ejemplo de Consul. Alexander Sigachev

Propongo familiarizarme con la decodificación del informe de Alexander Sigachev Service Discovery en sistemas distribuidos en el ejemplo de Consul.


Service Discovery se creó para que, a un costo mínimo, pueda conectar una nueva aplicación a nuestro entorno existente. Con Service Discovery, podemos separar al máximo el contenedor en forma de acoplador o el servicio virtual del entorno en el que se está ejecutando.



Saludo a todos! Soy Alexander Sigachev, trabajo para Inventos. Y hoy les presentaré un concepto como Service Discovery. Consideraremos Service Discovery en el ejemplo de Consul.



¿Qué problemas resuelve Service Discovery?


Service Discovery se creó para que, a un costo mínimo, pueda conectar una nueva aplicación a nuestro entorno existente. Con Service Discovery, podemos separar al máximo el contenedor en forma de acoplador o el servicio virtual del entorno en el que se está ejecutando.


Cómo se ve? En el ejemplo web clásico, esta es la interfaz que acepta la solicitud de un usuario. Luego lo dirige al backend. En este ejemplo, este equilibrador de carga se equilibra en dos backend.



, . , , Service Discovery. Service Discovery load-balancer. Load-balancer backend . backend, , , .



Service Discovery?


Service Discovery nginx, backend-.



Service Discovery , .


?


  • , , Service Discovery, .
  • Service Discovery .
  • , Service Discovery, , , , .

, . , , , Service Discovery. , Service Discovery .


- , , , .



. Load-balancer nginx . , Consul. consul-template. . , ( Golang). , , , Service Discovery «reload». , nginx .



Consul?


  • – Service Discovery.


  • – Health Checking.


  • KV Store.


  • Multi Datacenter.



? KV Store . Health Checking . Multi Datacenter , . , Amazon , -, , , , .



, Consul .


  • Consul – , Go. Go – 1 , . .
  • , .
  • «datacenter» - .
  • Consensus – raft. , Consul. , .
  • Gossip – , . . - . , , . , .
  • LAN Gossip – -.
  • WAN Gossip – , -. , .
  • RPC – .

RPC. , Consul . . . , , .


, . , . , , , .



, . , . . , UDP/TCP. - . .



API Consul?


, API Consul.


DNS API. Consul 8600 . , DNS. IP-.


HTTP API – 8500 JSON , IP , host, . token.



, Consul?


, . Agent . . , .


– production. . , bootstrap , . . , . , , , . . , , bootstrap, . , .


. , , . , .



Health Checks?


Consul Json . – google.com. , 30 . , .


– . curl localhost 10 .


Service Discovery. , .



Consul UI-, . , .


«». , , Consul. . -, .



«Nodes». , -. , , . . , . - , .


Consul , .



: -, Consul ?


: - . – -, . . Consul.


: . . Consul -?


: . -. – - . , , , .


: , -, Service Discovery - , Consul?


: . , . , name, . Consul.


: UI . UI, , production-. ? ? - ?


: UI Service Discovery. .


: ?


: Consul localhost. , - proxy. .


: ? Health Checks. , .


: , .


: , .


: – .


: Service Discovery Consul ?


: . – , . , -, 1- . , , Kubernetes, . Kubernetes Service Discovery Etcd. , Consul. Service Discovery Consul.


: ? Consul , ?


: . , .


: Consul ?


: , . , , service.consul. . production , , , DNS.


: . . , Consul, , ?


Respuesta: sí. Si trabajamos en DNS, entonces funciona como sin Consul cuando usamos nombres DNS. Por lo general, las aplicaciones modernas no obtienen el nombre de dominio en cada solicitud, porque hemos instalado connect, todo funciona y en el futuro cercano prácticamente no lo usamos. Si la conexión está interrumpida, entonces, sí, nuevamente preguntamos dónde tenemos la base y vamos a ella.

Source: https://habr.com/ru/post/undefined/


All Articles