Service Discovery dalam sistem terdistribusi menggunakan contoh Konsul. Alexander Sigachev

Saya mengusulkan untuk berkenalan dengan decoding laporan Alexander Sigachev Service Discovery dalam sistem terdistribusi pada contoh Konsul.


Service Discovery dibuat sehingga dengan biaya minimal Anda dapat menghubungkan aplikasi baru ke lingkungan kami yang ada. Menggunakan Service Discovery, kami dapat memaksimalkan pemisahan wadah dalam bentuk buruh pelabuhan atau layanan virtual dari lingkungan di mana kontainer beroperasi.



Saya menyapa semuanya! Saya Alexander Sigachev, saya bekerja untuk Inventos. Dan hari ini saya akan memperkenalkan Anda pada konsep seperti Service Discovery. Kami akan mempertimbangkan Layanan Penemuan pada contoh Konsul.



Masalah apa yang dipecahkan Service Discovery?


Service Discovery dibuat sehingga dengan biaya minimal Anda dapat menghubungkan aplikasi baru ke lingkungan kami yang ada. Menggunakan Service Discovery, kami dapat memaksimalkan pemisahan wadah dalam bentuk buruh pelabuhan atau layanan virtual dari lingkungan di mana kontainer beroperasi.


Seperti apa bentuknya? Dalam contoh web klasik, ini adalah frontend yang menerima permintaan pengguna. Kemudian rute itu ke backend. Dalam contoh ini, load-balancer ini menyeimbangkan pada dua 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, , ?


Jawab: Ya. Jika kami bekerja pada DNS, maka itu berfungsi sebagai tanpa Konsul ketika kami menggunakan nama DNS. Biasanya aplikasi modern tidak menarik nama domain di setiap permintaan, karena kami telah memasang koneksi, semuanya berfungsi dan dalam waktu dekat kami praktis tidak menggunakannya. Jika koneksi terputus, maka - ya, kami kembali bertanya di mana kami memiliki basis dan pergi ke sana.

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


All Articles