{"id":56387,"date":"2020-02-12T00:00:00","date_gmt":"2020-02-11T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev"},"modified":"2020-02-18T14:04:39","modified_gmt":"2020-02-18T11:04:39","slug":"service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Los invito a revisar la transcripci\u00f3n de la presentaci\u00f3n de Alexander Sigachev sobre el Service Discovery en sistemas distribuidos tomando como ejemplo Consul.<\/strong><\/p>\n<p><\/p>\n<p>El Service Discovery est\u00e1 creado para permitir la conexi\u00f3n de nuevas aplicaciones en nuestro entorno existente con costos m\u00ednimos. Utilizando el Service Discovery, podemos separar al m\u00e1ximo ya sea un contenedor en forma de Docker o un servicio virtual del entorno en el que se ejecuta. <\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"IYWsZ8HFrCw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/IYWsZ8HFrCw\/hqdefault.jpg\" alt=\"Reproducir video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00a1Hola a todos! Soy Alexander Sigachev, trabajo en la empresa Inventos. Hoy les presentar\u00e9 el concepto de Service Discovery. Analizaremos el Service Discovery a trav\u00e9s del ejemplo de Consul.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 problemas resuelve el Service Discovery? Este se cre\u00f3 para facilitar la conexi\u00f3n de nuevas aplicaciones a nuestro entorno existente con los m\u00ednimos costos. Al utilizar el Service Discovery, podemos separar al m\u00e1ximo un contenedor en forma de Docker o un servicio virtual del entorno en el que se ejecuta. <\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo se ve esto? En un ejemplo cl\u00e1sico en la web: es el frontend que recibe la solicitud del usuario. Luego realiza la ruta hacia el backend. En este caso, un balanceador de carga que se distribuye entre dos backends.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Aqu\u00ed vemos que estamos lanzando una tercera instancia de la aplicaci\u00f3n. Cuando se inicia la aplicaci\u00f3n, se registra en el Service Discovery. Este notifica al balanceador de carga. El balanceador de carga actualiza autom\u00e1ticamente su configuraci\u00f3n y el nuevo backend se activa. De esta manera, los backends pueden ser a\u00f1adidos o, por el contrario, excluidos de operaci\u00f3n.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 m\u00e1s se puede hacer con el Service Discovery? Puede almacenar configuraciones de nginx, certificados y una lista de servidores backend activos.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Adem\u00e1s, el Service Discovery permite detectar fallos y errores. \u00bfCu\u00e1les son los posibles esquemas para la detecci\u00f3n de fallos?<\/p>\n<p><\/p>\n<ul>\n<li>Esta aplicaci\u00f3n que hemos desarrollado, se notifica a s\u00ed misma al Service Discovery que sigue operativo. <\/li>\n<li>El Service Discovery, por su parte, interroga a la aplicaci\u00f3n para verificar su disponibilidad.<\/li>\n<li>O se puede utilizar un script o aplicaci\u00f3n externa que verifique la disponibilidad de nuestra aplicaci\u00f3n y notifique al Service Discovery tanto que todo est\u00e1 bien y se puede operar, como por el contrario, que hay problemas y es necesario excluir esa instancia de la equilibraci\u00f3n.<\/li>\n<\/ul>\n<p><\/p>\n<p>Cada uno de los esquemas puede aplicarse dependiendo del software que usemos. Por ejemplo, si hemos comenzado a desarrollar un nuevo proyecto, podemos establecer f\u00e1cilmente un esquema donde nuestra aplicaci\u00f3n notifica a Service Discovery. O podemos conectar Service Discovery para que realice la verificaci\u00f3n.<\/p>\n<p><\/p>\n<p>Sin embargo, si la aplicaci\u00f3n nos fue heredada o fue desarrollada por alg\u00fan tercero, entonces se aplica la tercera opci\u00f3n, donde escribimos un manejador, y todo esto se integra autom\u00e1ticamente en nuestro trabajo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Este es uno de los ejemplos. Un balanceador de carga en forma de nginx se reinicia. Es una utilidad adicional que se proporciona junto con Consul. Esto es consul-template. Describimos una regla. Decimos que usamos una plantilla (plantillador de Golang). Al ocurrir eventos, cuando se notifican cambios, se regenera y Service Discovery recibe el comando \u00abreload\u00bb. Un ejemplo simple es cuando nginx se reconfigura y se reinicia debido a un evento.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 es Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Sobre todo, es Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Tiene un mecanismo de verificaci\u00f3n de disponibilidad: Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Tambi\u00e9n cuenta con KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>Y su fundamento permite el uso de Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00bfPara qu\u00e9 se puede utilizar todo esto? En KV Store podemos almacenar ejemplos de configuraciones. Con el Health Checking podemos verificar servicios locales y notificar. Multi Datacenter se utiliza para construir un mapa de servicios. Por ejemplo, Amazon tiene varias zonas y dirige el tr\u00e1fico de la manera m\u00e1s \u00f3ptima para evitar solicitudes innecesarias entre data centers, que se tarifan por separado del tr\u00e1fico local y, por lo tanto, tienen menor latencia. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vamos a aclarar un poco los t\u00e9rminos que se utilizan en Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul es un servicio escrito en Go. Una de las ventajas de un programa en Go es que es un \u00fanico archivo binario, que simplemente descargas, ejecutas desde cualquier lugar y no tienes dependencias. <\/li>\n<li>A continuaci\u00f3n, mediante claves, podemos iniciar este servicio ya sea en modo cliente o en modo servidor. <\/li>\n<li>Adem\u00e1s, el atributo \u00abdatacenter\u00bb permite marcar a qu\u00e9 data center pertenece este servidor. <\/li>\n<li>Consensus se basa en el protocolo raft. Si alguien est\u00e1 interesado, se puede leer m\u00e1s sobre esto en el sitio web de Consul. Este es un protocolo que permite determinar un l\u00edder y establecer qu\u00e9 datos considerar v\u00e1lidos y disponibles.<\/li>\n<li>Gossip es un protocolo que asegura la interacci\u00f3n entre nodos. Adem\u00e1s, este sistema es descentralizado. Dentro de un mismo centro de datos, todos los nodos se comunican con sus vecinos. Por lo tanto, se intercambia informaci\u00f3n sobre el estado actual. Se puede decir que son chismes entre vecinos. <\/li>\n<li>LAN Gossip es el intercambio local de datos entre vecinos dentro de un mismo centro de datos. <\/li>\n<li>WAN Gossip se utiliza cuando necesitamos sincronizar informaci\u00f3n entre dos centros de datos. La informaci\u00f3n circula entre nodos que est\u00e1n etiquetados como servidores. <\/li>\n<li>RPC permite realizar solicitudes a trav\u00e9s del cliente en el servidor. <\/li>\n<\/ul>\n<p><\/p>\n<p>Descripci\u00f3n de RPC. Supongamos que en una m\u00e1quina virtual o en un servidor f\u00edsico se est\u00e1 ejecutando Consul como cliente. Nos dirigimos a \u00e9l localmente. Luego, el cliente local solicita informaci\u00f3n al servidor y se sincroniza. Dependiendo de la configuraci\u00f3n, la informaci\u00f3n puede ser proporcionada desde la cach\u00e9 local o puede sincronizarse con el l\u00edder, con el servidor maestro. <\/p>\n<p><\/p>\n<p>Ambos esquemas tienen sus ventajas y desventajas. Si trabajamos con cach\u00e9 local, es r\u00e1pido. Si trabajamos con datos que se almacenan en el servidor, es m\u00e1s lento, pero obtenemos informaci\u00f3n m\u00e1s actualizada.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si lo representamos gr\u00e1ficamente, ser\u00eda una imagen del sitio. Vemos que tenemos tres maestros activados. Uno est\u00e1 marcado con una estrella como l\u00edder. En este ejemplo hay tres clientes que intercambian informaci\u00f3n localmente a trav\u00e9s de UDP\/TCP. La informaci\u00f3n entre centros de datos se transmite entre servidores. Aqu\u00ed, los clientes interact\u00faan entre s\u00ed localmente. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 API proporciona Consul? Para obtener informaci\u00f3n, hay dos tipos de API en Consul.<\/p>\n<p><\/p>\n<p>Esta es la API DNS. Por defecto, Consul se inicia en el puerto 8600. Podemos configurar el proxy de solicitud y garantizar el acceso a trav\u00e9s de la resoluci\u00f3n local, a trav\u00e9s del DNS local. Podemos solicitar por dominio y recibir informaci\u00f3n sobre la direcci\u00f3n IP a cambio.<\/p>\n<p><\/p>\n<p>HTTP API - o podemos solicitar informaci\u00f3n sobre un servicio espec\u00edfico localmente en el puerto 8500 y recibiremos una respuesta JSON, que indica qu\u00e9 IP tiene el servidor, qu\u00e9 host, qu\u00e9 puerto est\u00e1 registrado. Y puede ser que informaci\u00f3n adicional se env\u00ede a trav\u00e9s de un token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 se necesita para ejecutar Consul?<\/p>\n<p><\/p>\n<p>En la primera opci\u00f3n, en modo desarrollador, indicamos una bandera que marca este como el modo de desarrollo. El agente se inicia como un servidor y realiza toda la funci\u00f3n de manera independiente en una sola m\u00e1quina. Es conveniente, r\u00e1pido y pr\u00e1cticamente no se requieren configuraciones adicionales para el primer inicio.<\/p>\n<p><\/p>\n<p>El segundo modo es el inicio en producci\u00f3n. Aqu\u00ed, el inicio es un poco m\u00e1s complicado. Si no tenemos ninguna versi\u00f3n del consulado, debemos traer la primera m\u00e1quina en bootstrap, es decir, esta m\u00e1quina asumir\u00e1 las responsabilidades de l\u00edder. La levantamos, luego levantamos una segunda instancia del servidor, pas\u00e1ndole la informaci\u00f3n sobre d\u00f3nde est\u00e1 el maestro. Finalmente, levantamos la tercera. Una vez que tenemos tres m\u00e1quinas operativas, reiniciamos la primera m\u00e1quina desde el bootstrap en modo normal. Los datos se sincronizan, y el cl\u00faster inicial ya est\u00e1 operativo. <\/p>\n<p><\/p>\n<p>Se recomienda ejecutar entre tres y siete instancias en modo servidor. Esto se debe a que al aumentar el n\u00famero de servidores, el tiempo de sincronizaci\u00f3n de la informaci\u00f3n entre ellos tambi\u00e9n aumenta. El n\u00famero de nodos debe ser impar para garantizar el quorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo se realizan los Health Checks? En el directorio de configuraci\u00f3n de Consul, escribimos una regla de verificaci\u00f3n en formato JSON. La primera opci\u00f3n es la disponibilidad del dominio google.com, en este ejemplo. Indicamos que esta verificaci\u00f3n debe realizarse cada 30 segundos. De esta manera, comprobamos que nuestro nodo tiene acceso a la red externa.<\/p>\n<p><\/p>\n<p>La segunda opci\u00f3n es la auto-verificaci\u00f3n. Usamos curl para consultar localhost en el puerto indicado cada 10 segundos. <\/p>\n<p><\/p>\n<p>Estas verificaciones se suman y se env\u00edan a Service Discovery. Basado en la disponibilidad, estos nodos son excluidos o aparecen en la lista de m\u00e1quinas disponibles y funcionando correctamente. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Consul tambi\u00e9n proporciona una interfaz de usuario que se inicia con un flag separado y estar\u00e1 disponible en la m\u00e1quina. Esto permite visualizar informaci\u00f3n y tambi\u00e9n realizar algunas modificaciones. <\/p>\n<p><\/p>\n<p>En este ejemplo, est\u00e1 abierta la pesta\u00f1a 'Servicio'. Se muestra que se han iniciado tres servicios, uno de los cuales es Consul. Se presenta el n\u00famero de verificaciones realizadas y hay tres centros de datos donde se encuentran las m\u00e1quinas.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Descubrimiento de servicios en sistemas distribuidos basado en el ejemplo de Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Este es un ejemplo de la pesta\u00f1a \u00abNodes\u00bb. Vemos que tienen nombres compuestos que incluyen centros de datos. Tambi\u00e9n se muestra qu\u00e9 servicios est\u00e1n activos, es decir, vemos que no se han asignado etiquetas. En estas etiquetas adicionales se puede proporcionar informaci\u00f3n que el desarrollador puede usar para especificar par\u00e1metros adicionales. <\/p>\n<p><\/p>\n<p>Tambi\u00e9n se puede transmitir informaci\u00f3n a Consul sobre el estado de los discos y la carga media.<\/p>\n<p><\/p>\n<p>Preguntas<\/p>\n<p><\/p>\n<p>Pregunta: Tenemos un contenedor de Docker, \u00bfc\u00f3mo utilizarlo con Consul?<\/p>\n<p><\/p>\n<p>Respuesta: Para el contenedor de Docker hay varios enfoques. Uno de los m\u00e1s comunes es usar un contenedor de Docker de terceros que se encargue del registro. Al iniciarlo, se le pasa el socket de Docker. Todos los eventos de registro y despublicaci\u00f3n del contenedor se registran en Consul.<\/p>\n<p><\/p>\n<p>Pregunta: O sea, \u00bfConsul inicia el contenedor de Docker por s\u00ed mismo?<\/p>\n<p><\/p>\n<p>Respuesta: No. Nosotros iniciamos el contenedor de Docker. Y en la configuraci\u00f3n especificamos: escucha en este socket. Es algo similar a c\u00f3mo funciona el certificado, cuando pasamos informaci\u00f3n sobre d\u00f3nde y qu\u00e9 tenemos. <\/p>\n<p><\/p>\n<p>Pregunta: Entonces, \u00bfdentro del contenedor de Docker que estamos tratando de conectar a Service Discovery debe haber l\u00f3gica que pueda enviar datos a Consul?<\/p>\n<p><\/p>\n<p>Respuesta: No exactamente. Cuando se inicia, pasamos variables a trav\u00e9s del entorno. Por ejemplo, el nombre del servicio, el puerto del servicio. En el registro, esta informaci\u00f3n es escuchada y se registra en Consul.<\/p>\n<p><\/p>\n<p>Pregunta: Tengo otra pregunta sobre la interfaz de usuario. Hemos desplegado la interfaz de usuario, digamos, en el servidor de producci\u00f3n. \u00bfQu\u00e9 pasa con la seguridad? \u00bfD\u00f3nde se almacenan los datos? \u00bfSe puede acumular informaci\u00f3n de alguna manera?<\/p>\n<p><\/p>\n<p>Respuesta: En la interfaz de usuario, de hecho, los datos provienen de la base de datos y de Service Discovery. Nosotros configuramos las contrase\u00f1as por nuestra cuenta. <\/p>\n<p><\/p>\n<p>Pregunta: \u00bfSe puede publicar esto en internet?<\/p>\n<p><\/p>\n<p>Respuesta: Por defecto, Consul se inicia en localhost. Para publicarlo en internet, ser\u00e1 necesario configurar un proxy. Nos hacemos responsables de las reglas de seguridad.<\/p>\n<p><\/p>\n<p>Pregunta: \u00bfProporciona datos hist\u00f3ricos por defecto? Me gustar\u00eda ver estad\u00edsticas sobre los Health Checks. Se pueden diagnosticar problemas si el servidor falla con frecuencia.<\/p>\n<p><\/p>\n<p>Respuesta: No estoy seguro de que haya detalles sobre las comprobaciones. <\/p>\n<p><\/p>\n<p>Pregunta: No es tanto importante el estado actual, sino la din\u00e1mica.<\/p>\n<p><\/p>\n<p>Respuesta: Para el an\u00e1lisis, s\u00ed.<\/p>\n<p><\/p>\n<p>Pregunta: \u00bfNo es mejor no usar Service Discovery para Docker con Consul?<\/p>\n<p><\/p>\n<p>Respuesta: No lo recomendar\u00eda. El objetivo de la presentaci\u00f3n es familiarizarse con este concepto. Hist\u00f3ricamente ha recorrido un camino, creo, hasta la versi\u00f3n 1. Actualmente hay soluciones m\u00e1s completas, como Kubernetes, que ya integra todo esto. En el \u00e1mbito de Kubernetes, Service Discovery pierde ante Etcd. Pero no lo conozco tan a fondo como a Consul. Por eso decid\u00ed hacer el ejemplo de Service Discovery con Consul.<\/p>\n<p><\/p>\n<p>Pregunta: \u00bfEl esquema con un servidor l\u00edder no retrasa el inicio de la aplicaci\u00f3n en general? \u00bfY c\u00f3mo determina Consul un nuevo l\u00edder si este falla?<\/p>\n<p><\/p>\n<p>Respuesta: Ellos han descrito todo un protocolo. Si es de su inter\u00e9s, se puede leer.<\/p>\n<p><\/p>\n<p>Pregunta: \u00bfConsul act\u00faa como un servidor completo y todas las solicitudes pasan a trav\u00e9s de \u00e9l?<\/p>\n<p><\/p>\n<p>Respuesta: No act\u00faa como un servidor completo, sino que asigna una zona espec\u00edfica. Esta, por lo general, termina en service.consul. Luego seguimos l\u00f3gicamente. No usamos nombres de dominio en producci\u00f3n, sino infraestructura interna, que usualmente se oculta detr\u00e1s del servidor de cach\u00e9, si trabajamos por DNS.<\/p>\n<p><\/p>\n<p>Pregunta: Es decir, si queremos acceder a la base de datos, de cualquier manera consultaremos a Consul primero para encontrar esa base, \u00bfverdad?<\/p>\n<p><\/p>\n<p>Respuesta: S\u00ed. Si trabajamos por DNS, esto funciona como sin Consul, al usar nombres DNS. Normalmente, las aplicaciones modernas no consultan el nombre de dominio en cada solicitud, porque hemos establecido la conexi\u00f3n, todo funciona y en el corto plazo no la utilizamos. Si la conexi\u00f3n se rompe, entonces s\u00ed, volvemos a preguntar d\u00f3nde est\u00e1 nuestra base y vamos a buscarla.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat sobre productos de hashicorp<\/a><\/noindex> \u2014 Chat de usuarios de Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Acerca de los chequeos de salud. En Consul, al igual que en Kubernetes, se utiliza un sistema de verificaci\u00f3n de la salud del servicio basado en el c\u00f3digo de estado.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK para saludable\n503 Servicio no disponible para no saludable<\/code><\/pre>\n<p><\/p>\n<p>Fuentes:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.consul.io\/docs\/agent\/checks.html\">https:\/\/www.consul.io\/docs\/agent\/checks.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/\">https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/\">https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/<\/a><\/noindex><\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/487706\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Service Discovery, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043a\u0435\u0440\u0430, \u043b\u0438\u0431\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442 \u0442\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56387","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-11T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Service Discovery en sistemas distribuidos utilizando Consul. Alexander Sigachev | ProHoster","description":"Te propongo familiarizarte con la presentaci\u00f3n de Alexander Sigachev sobre Service Discovery en sistemas distribuidos utilizando Consul como ejemplo. Service Discovery se crea para que, con lo m\u00ednimo.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-11T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56387","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:25:40","updated":"2022-10-01 05:49:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}