Service Discovery in verteilten Systemen anhand des Consul-Beispiels. Alexander Sigachev

Ich schlage vor, mich mit der Entschlüsselung des Berichts von Alexander Sigachev Service Discovery in verteilten Systemen am Beispiel des Konsuls vertraut zu machen.


Service Discovery wurde erstellt, damit Sie mit minimalen Kosten eine neue Anwendung mit unserer vorhandenen Umgebung verbinden können. Mit Service Discovery können wir die Trennung eines Containers in Form eines Dockers oder eines virtuellen Dienstes von der Umgebung, in der er ausgeführt wird, maximieren.



Ich grüße alle! Ich bin Alexander Sigachev, ich arbeite für Inventos. Und heute werde ich Ihnen ein Konzept wie Service Discovery vorstellen. Wir werden Service Discovery am Beispiel von Consul betrachten.



Welche Probleme löst Service Discovery?


Service Discovery wurde erstellt, damit Sie mit minimalen Kosten eine neue Anwendung mit unserer vorhandenen Umgebung verbinden können. Mit Service Discovery können wir die Trennung eines Containers in Form eines Dockers oder eines virtuellen Dienstes von der Umgebung, in der er ausgeführt wird, maximieren.


Wie sieht es aus? Im klassischen Webbeispiel ist dies das Frontend, das die Anforderung eines Benutzers akzeptiert. Es leitet es dann an das Backend weiter. In diesem Beispiel gleicht dieser Load-Balancer zwei Backends aus.



, . , , 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, , ?


Antwort: Ja. Wenn wir an DNS arbeiten, funktioniert es wie ohne Consul, wenn wir DNS-Namen verwenden. Normalerweise ziehen moderne Anwendungen den Domainnamen nicht bei jeder Anfrage ab, da wir connect installiert haben, alles funktioniert und wir es in naher Zukunft praktisch nicht verwenden. Wenn die Verbindung unterbrochen ist, fragen wir erneut, wo wir die Basis haben, und gehen dorthin.

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


All Articles