Dalam kerangka layanan mikro, panggilan layanan terpengaruh jika konsumen tidak dapat mendeteksi pengecualian pada instance aplikasi penyedia. Hal ini memengaruhi kinerja dan bahkan ketersediaan layanan yang disediakan oleh konsumen. Fitur outlier ejection memantau ketersediaan instance aplikasi dan menyesuaikannya secara dinamis untuk memastikan keberhasilan panggilan layanan serta meningkatkan stabilitas dan kualitas layanan (QoS). Topik ini menjelaskan cara membuat kebijakan outlier ejection.
Informasi latar belakang
Gambar berikut menunjukkan sistem yang memerlukan outlier ejection. Dalam contoh ini, sistem memiliki Aplikasi A, B, C, dan D, di mana Aplikasi A memanggil instance dari Aplikasi B, C, dan D. Jika instance dari Aplikasi B, C, atau D menjadi abnormal dan Aplikasi A tidak mengidentifikasi instance tersebut, sebagian panggilan yang dimulai oleh Aplikasi A gagal. Pada gambar berikut, Aplikasi B memiliki satu instance abnormal, sedangkan Aplikasi C dan D masing-masing memiliki dua instance abnormal. Jika Aplikasi B, C, dan D memiliki banyak instance abnormal, kinerja layanan dan ketersediaan Aplikasi A dapat terpengaruh.
Untuk memastikan kinerja layanan dan ketersediaan Aplikasi A, Anda dapat mengonfigurasi kebijakan outlier ejection untuk Aplikasi A. Setelah dikonfigurasi, Enterprise Distributed Application Service (EDAS) akan memantau status instance Aplikasi B, C, dan D, serta menambah atau menghapus instance secara dinamis untuk memastikan keberhasilan panggilan layanan.

Berikut adalah deskripsi proses outlier ejection:
- EDAS mendeteksi apakah Aplikasi B, C, atau D memiliki instance abnormal. Jika ditemukan instance abnormal, EDAS menentukan apakah akan menghapus instance tersebut berdasarkan parameter Instance Removal Rate Threshold.
- EDAS tidak mendistribusikan permintaan panggilan Aplikasi A ke instance yang telah dihapus.
- EDAS mendeteksi apakah instance abnormal telah pulih berdasarkan parameter Recovery Detection Unit Time.
- Interval deteksi meningkat secara linear sesuai nilai parameter Recovery Detection Unit Time. Nilai default Recovery Detection Unit Time adalah 30.000 ms, atau 0,5 menit. Jika ambang batas yang ditentukan oleh parameter Max Number of Instance Checked Before Restoration tercapai, EDAS mendeteksi apakah instance abnormal telah pulih pada interval deteksi maksimum.
- Setelah instance abnormal pulih, EDAS menambahkan kembali instance tersebut ke aplikasi untuk memproses permintaan panggilan. Interval deteksi diatur ulang ke nilai parameter Recovery Detection Unit Time, seperti 30.000 ms.
- Jika rasio instance abnormal dari penyedia melebihi ambang batas yang ditentukan oleh parameter Instance Removal Rate Threshold, EDAS akan menghapus instance abnormal berdasarkan ambang batas tersebut.
- Jika penyedia hanya memiliki satu instance yang tersedia, EDAS tidak akan menghapus instance tersebut meskipun ambang batas yang ditentukan oleh parameter Error Rate Threshold terlampaui.
Buat kebijakan outlier ejection
Masuk ke .
Di bilah navigasi sisi kiri, pilih .
- Di bilah navigasi halaman Spring Cloud, klik Outlier Ejection.
- Di bilah navigasi atas, pilih wilayah. Di halaman Outlier Ejection, pilih namespace mikrolayanan dan klik Create Outlier Ejection Policy.
- Di panel Create Outlier Ejection Policy, konfigurasikan parameter dan klik OK.
Parameter Deskripsi Microservice Space Dalam kotak daftar drop-down, pilih wilayah dan namespace mikrolayanan. Policy Name Masukkan nama untuk kebijakan. Nama dapat mencapai hingga 64 karakter. Framework for Called Services Pilih Spring Cloud. Select a valid application Pilih aplikasi dan klik ikon > untuk menambahkan aplikasi ke daftar Selected Applications. Setelah aplikasi dipilih, instance abnormal dari semua aplikasi yang dipanggil oleh aplikasi ini dapat dihapus. Permintaan panggilan dari aplikasi ini tidak didistribusikan ke instance yang dihapus.
Error Rate Threshold Masukkan batas bawah tingkat kesalahan. Jika tingkat kesalahan pada instance aplikasi yang dipanggil melebihi batas, instance tersebut dihapus. Nilai default: 50. Sebagai contoh, sebuah instance menerima 10 permintaan panggilan dalam jendela waktu statistik, dan 6 permintaan panggilan gagal. Tingkat kesalahan adalah 60%. Jika parameter ini diatur ke 50, instance tersebut dihapus. Advanced Settings Klik ikon
untuk menampilkan bagian Advanced Settings.Exception Type Pilih Network Exception atau Network exception + Business exception (HTTP 5xx) berdasarkan kebutuhan bisnis Anda. Lower QPS Limit Masukkan batas bawah permintaan per detik (QPS) berdasarkan jendela waktu statistik. Jendela waktu statistik adalah 15 detik untuk aplikasi yang dikembangkan berdasarkan Dubbo 2.7, dan 10 detik untuk aplikasi yang dikembangkan berdasarkan versi Dubbo lainnya dan aplikasi Spring Cloud. Jika QPS dalam jendela waktu statistik, seperti jendela waktu statistik 15 detik, mencapai batas bawah yang ditentukan oleh parameter ini, EDAS mulai mengumpulkan dan menganalisis tingkat kesalahan. Instance Removal Rate Threshold Tentukan ambang batas untuk rasio instance abnormal yang dapat dihapus. Jika ambang batas tercapai, tidak ada lagi instance abnormal yang dihapus. Sebagai contoh, sebuah aplikasi memiliki total 6 instance. Jika Anda mengatur parameter ini ke 60%, jumlah instance yang dapat dihapus adalah 3,6, yang dibulatkan ke bawah menjadi bilangan bulat terdekat 3. Angka ini dihitung menggunakan rumus berikut: 6 × 60%. Jika hasil perhitungan kurang dari 1, tidak ada instance abnormal yang dihapus. Recovery Detection Unit Time Tentukan interval unit dalam milidetik. Interval unit ini digunakan untuk mendeteksi apakah instance abnormal telah pulih. Setelah instance abnormal dihapus, EDAS meningkatkan interval deteksi secara linear berdasarkan interval unit yang ditentukan. Nilai default: 30000. Satuan: ms. Nilai default sama dengan 0,5 menit. Max Number of Instance Checked Before Restoration Masukkan jumlah maksimum kali EDAS mendeteksi bahwa instance abnormal belum pulih. Interval deteksi meningkat secara linear dengan nilai Waktu Deteksi Pemulihan. Jika jumlah kali deteksi mencapai nilai parameter ini, EDAS mendeteksi apakah instance abnormal telah pulih pada interval deteksi maksimum. Sebagai contoh, Anda mengatur Recovery Detection Unit Time ke 30000 ms dan Max Number of Instance Checked Before Restoration ke 20. Jika EDAS mendeteksi selama 20 kali berturut-turut bahwa instance abnormal belum pulih, EDAS melakukan operasi deteksi berikutnya dengan interval 10 menit. Interval dihitung menggunakan rumus berikut: 20 x 30000 ms. Jika instance pulih sebelum jumlah kali deteksi mencapai nilai yang ditentukan oleh parameter ini, interval deteksi diatur ulang ke nilai Recovery Detection Unit Time. Catatan Kami merekomendasikan agar Anda tidak mengatur Max Number of Instance Checked Before Restoration ke nilai besar. Jika Anda mengatur parameter ini ke nilai besar, interval deteksi maksimum akan lama. Jika instance pulih sebelum interval deteksi berakhir, pemulihan tidak dapat dideteksi pada kesempatan pertama. Hal ini mengakibatkan rendahnya pemanfaatan sumber daya dan tertundanya pemrosesan permintaan panggilan layanan.
Verifikasi hasil
Fitur outlier ejection diaktifkan setelah Anda mengonfigurasi dan membuat kebijakan outlier ejection. Anda dapat membuka halaman detail aplikasi tempat Anda mengonfigurasi outlier ejection untuk melihat informasi pemantauan aplikasi. Sebagai contoh, Anda dapat memeriksa apakah permintaan panggilan masih diteruskan ke instance abnormal dan apakah Error Rate / 1 Min untuk panggilan aplikasi lebih tinggi dari nilai parameter Error Rate Threshold pada tab Topology. Dengan cara ini, Anda dapat memverifikasi apakah kebijakan outlier ejection berlaku. Untuk informasi lebih lanjut, lihat Ikhtisar Aplikasi.
Kelola kebijakan outlier ejection
Di halaman Outlier Ejection, Anda dapat mengklik Edit atau Delete di kolom Operasi untuk mengelola kebijakan outlier ejection yang diinginkan.