Dalam pengembangan proyek Internet, perlu untuk berinteraksi dengan berbagai layanan, dan pengguna memperoleh data dari server, dan ketersediaan antarmuka layanan yang tinggi sangat penting, terutama dalam sistem e-commerce dan pembayaran, di mana ketersediaan tinggi juga mengukur apakah sistem tersebut kuat. Dalam kasus klaster, banyak layanan juga sulit dipertahankan.
Ulasan konsul
Consul adalah alat sumber terbuka yang dikembangkan dalam bahasa Go yang diluncurkan oleh HashiCorp, yang digunakan untuk mewujudkan penemuan layanan dan konfigurasi sistem terdistribusi, dengan kerangka kerja pendaftaran dan penemuan layanan bawaan, implementasi protokol konsistensi distribusi, pemeriksaan kesehatan, penyimpanan kunci/nilai, dan solusi multi-pusat data, yang relatif mudah digunakan.
Penemuan layanan konsul
Cara menggunakan Consul Service Discovery:
- Jalankan agen Konsul dalam Mode Klien di setiap komputer, yang hanya bertanggung jawab untuk bertukar informasi pendaftaran terbaru secara efisien dengan Klaster Konsul (tidak berpartisipasi dalam pemilihan pemimpin).
- Layanan layanan di setiap komputer mendaftarkan nama layanan dan URL layanan dengan agen konsul setempat
- Ketika program yang disebarkan di Komputer1 perlu memanggil ServiceB, program ServiceA langsung memperoleh alamat akses ServiceB dari Agen Konsul setempat melalui nama layanan, dan kemudian langsung membuat permintaan ke URL ServiceB.
Kodenya adalah sebagai berikut:
Di kelas Startup, panggil sebagai berikut:
Pemeriksaan kesehatan
Antarmuka pemeriksaan kesehatan hanya perlu mengembalikan kode status 200 ke konsul, dan kodenya adalah sebagai berikut:
Mulai proyek, daftar layanan
Pengontrol dapat menentukan metode pengujian sebagai berikut:
Mari kita pergi ke direktori bin proyek dan mulai melalui baris perintah, kodenya adalah sebagai berikut:
Lihat tautan melalui browser Anda:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
Data json adalah sebagai berikut:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Alamat": "127.0.0.1", "Pusat Data": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "consul-network-segment": "" }, "Jenis Layanan": "", "ID Layanan": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "menguji", "itsvse" ], "Alamat Layanan": "127.0.0.1", "ServiceWeights": { "Lulus": 1, "Peringatan": 1 }, "ServiceMeta": {}, "Pelabuhan Layanan": 8083, "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Ekspos": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Alamat": "127.0.0.1", "Pusat Data": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "consul-network-segment": "" }, "Jenis Layanan": "", "ID Layanan": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "menguji", "itsvse" ], "Alamat Layanan": "127.0.0.1", "ServiceWeights": { "Lulus": 1, "Peringatan": 1 }, "ServiceMeta": {}, "Pelabuhan Layanan": 8082, "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Ekspos": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Panggilan layanan konsul
Buat proyek konsol .NET Core baru dengan kode berikut:
Saya secara acak memanggil layanan test.itsvse terdaftar dan hasilnya adalah sebagai berikut:
Terakhir, unduh kode sumber:
Wisatawan, jika Anda ingin melihat konten tersembunyi dari posting ini, silakan Jawab |