Skema LoadBalancerProbe definisi Microsoft Azure Cloud Services (dukungan yang diperluas)
Pemeriksaan penyeimbang muatan adalah pemeriksaan kesehatan yang ditentukan pelanggan pada titik akhir UDP dan titik akhir di instans peran. LoadBalancerProbe
ini bukan elemen mandiri; dikombinasikan dengan peran web atau peran pekerja dalam file definisi layanan. Lebih dari satu peran dapat menggunakan LoadBalancerProbe
.
Ekstensi default untuk file definisi layanan ini adalah csdef.
Fungsi pemeriksaan penyeimbang muatan
Azure Load Balancer bertanggung jawab untuk merutekan lalu lintas masuk ke instans peran. Penyeimbang muatan menentukan instans mana yang dapat menerima lalu lintas dengan menyelidiki secara berkala setiap instans guna menentukan kesehatan instans. Penyeimbang muatan menyelidiki setiap instans beberapa kali per menit. Terdapat dua opsi yang berbeda untuk memberikan kondisi kesehatan instans ke penyeimbang muatan – pemeriksaan penyeimbang muatan default, atau pemeriksaan penyeimbang muatan kustom, yang diimplementasikan dengan menentukan LoadBalancerProbe di file csdef.
Pemeriksaan load balancer default menggunakan Agen Tamu di dalam komputer virtual, yang mendengarkan dan merespons dengan respons HTTP 200 OK hanya ketika instans berada dalam status Siap (seperti ketika instans tidak berada di status Sibuk, Daur Ulang, Berhenti, dll. ). Jika Agen Tamu gagal merespons HTTP 200 OK, Azure Load Balancer menandai instans sebagai tidak responsif dan menghentikan lalu lintas pengiriman ke instans ini. Azure Load Balancer terus melakukan ping pada instans, dan jika Agen Tamu merespons HTTP 200, Azure Load Balancer mengirim lalu lintas ke instans ini lagi. Saat menggunakan peran web, kode situs web Anda biasanya berjalan di w3wp.exe, yang tidak dipantau oleh fabric Azure atau agen tamu, yang berarti kegagalan dalam w3wp.exe (misalnya, respons HTTP 500) tidak dilaporkan ke agen tamu dan load balancer tidak tahu untuk mengeluarkan instans tersebut dari rotasi.
Pemeriksaan penyeimbang muatan kustom menimpa pemeriksaan agen tamu default dan memungkinkan Anda untuk membuat logika kustom untuk menentukan kondisi status instans peran. Load balancer secara teratur memeriksa titik akhir Anda (setiap 15 detik, secara default), dan instans dipertimbangkan dalam rotasi jika merespons dengan TCP ACK atau HTTP 200 dalam periode batas waktu (default 31 detik). Hal ini dapat berguna untuk mengimplementasikan logika untuk menghapus instans dari rotasi penyeimbang muatan, misalnya mengembalikan status bukan 200 jika instans berada di atas 90% CPU. Untuk peran web menggunakan w3wp.exe, hal ini juga berarti Anda mendapatkan pemantauan otomatis pada situs web Anda, karena kegagalan di kode situs web mengembalikan status bukan 200 ke pemeriksaan penyeimbang muatan. Jika Anda tidak menentukan LoadBalancerProbe dalam file csdef, maka perilaku load balancer default (seperti yang dijelaskan sebelumnya) digunakan.
Jika menggunakan pemeriksaan penyeimbang muatan kustom, Anda harus memastikan bahwa logika mempertimbangkan metode RoleEnvironment.OnStop. Saat Anda menggunakan pemeriksaan load balancer default, instans diambil dari rotasi sebelum OnStop dipanggil, tetapi pemeriksaan load balancer kustom dapat terus mengembalikan 200 OK selama peristiwa OnStop. Jika Anda menggunakan peristiwa OnStop untuk membersihkan cache, menghentikan layanan, atau membuat perubahan yang dapat memengaruhi perilaku runtime layanan Anda, maka Anda perlu memastikan bahwa logika pemeriksaan load balancer kustom Anda menghapus instans dari rotasi.
Skema definisi layanan dasar untuk pemeriksaan penyeimbang muatan
Format dasar file definisi layanan yang berisi pemeriksaan penyeimbang muatan adalah sebagai berikut.
<ServiceDefinition …>
<LoadBalancerProbes>
<LoadBalancerProbe name="<load-balancer-probe-name>" protocol="[http|tcp]" path="<uri-for-checking-health-status-of-vm>" port="<port-number>" intervalInSeconds="<interval-in-seconds>" timeoutInSeconds="<timeout-in-seconds>"/>
</LoadBalancerProbes>
</ServiceDefinition>
Elemen skema
Elemen LoadBalancerProbes
dari file definisi layanan mencakup elemen berikut:
Elemen LoadBalancerProbes
Elemen LoadBalancerProbes
menjelaskan kumpulan pemeriksaan penyeimbang muatan. Elemen ini adalah elemen induk dari Elemen LoadBalancerProbe.
Elemen LoadBalancerProbe
Elemen LoadBalancerProbe
menentukan pemeriksaan kesehatan untuk model. Anda dapat menentukan beberapa pemeriksaan penyeimbang muatan.
Tabel berikut ini menjelaskan atribut LoadBalancerProbe
elemen:
Atribut | Tipe | Deskripsi |
---|---|---|
name |
string |
Harus diisi. Nama pemeriksaan penyeimbang muatan. Nama harus unik. |
protocol |
string |
Harus diisi. Menentukan protokol titik akhir. Nilai yang mungkin adalah http atau tcp . Jika tcp ditentukan, ACK yang diterima diperlukan untuk keberhasilan pemeriksaan. Jika http ditentukan, respons 200 OK dari URI yang ditentukan diperlukan untuk keberhasilan pemeriksaan. |
path |
string |
URI yang digunakan untuk meminta status kesehatan dari VM. path diperlukan jika protocol diatur ke http . Jika tidak, itu tidak diperbolehkan.Tidak ada nilai default. |
port |
integer |
Opsional. Port untuk mengomunikasikan pemeriksaan. Atribut ini bersifat opsional untuk titik akhir apa pun, karena port yang sama digunakan untuk pemeriksaan. Anda juga dapat mengonfigurasi port yang berbeda untuk pemeriksaannya. Kemungkinan nilainya berkisar dari 1 sampai 65535, secara inklusif. Nilai default yang ditetapkan oleh titik akhir. |
intervalInSeconds |
integer |
Opsional. Interval, dalam detik, untuk seberapa sering menyelidiki status kesehatan titik akhir. Biasanya, interval sedikit kurang dari setengah periode waktu habis yang dialokasikan (dalam detik) yang memungkinkan dua pemeriksaan penuh sebelum mengeluarkan instans dari rotasi. Nilai default-nya adalah 15. Nilai minimum adalah 5. |
timeoutInSeconds |
integer |
Opsional. Periode batas waktu, dalam detik, diterapkan ke pemeriksaan di mana tidak ada respons yang menghasilkan menghentikan lalu lintas lebih lanjut dikirimkan ke titik akhir. Nilai ini memungkinkan titik akhir dikeluarkan dari rotasi secara lebih cepat atau lebih lambat daripada waktu umum yang digunakan di Azure (yang merupakan waktu default). Nilai defaultnya adalah 31. Nilai minimum adalah 11. |