Dalam kerangka layanan mikro, panggilan layanan terpengaruh ketika konsumen layanan tidak dapat mendeteksi instans aplikasi abnormal dari penyedia layanan. Hal ini memengaruhi kemampuan layanan dan ketersediaan konsumen layanan. Fitur penghapusan instans outlier memantau ketersediaan aplikasi High-Speed Service Framework (HSF) dan instans layanan secara dinamis untuk memastikan panggilan layanan yang berhasil serta meningkatkan stabilitas dan kualitas layanan (QoS).
Informasi latar belakang
Gambar berikut menunjukkan sistem yang memerlukan eject outlier. Dalam contoh ini, sistem memiliki Aplikasi A, B, C, dan D, di mana Aplikasi A memanggil instans Aplikasi B, C, dan D. Jika instans Aplikasi B, C, atau D menjadi abnormal, dan Aplikasi A tidak mengidentifikasi instans abnormal tersebut, sebagian panggilan yang dimulai oleh Aplikasi A gagal. Dalam gambar berikut, Aplikasi B memiliki satu instans abnormal, dan Aplikasi C dan D masing-masing memiliki dua instans abnormal. Jika Aplikasi B, C, dan D memiliki sejumlah besar instans abnormal, kinerja layanan dan ketersediaan Aplikasi A mungkin terpengaruh.
Untuk memastikan kinerja layanan dan ketersediaan Aplikasi A, Anda dapat mengonfigurasi kebijakan eject outlier untuk Aplikasi A. Setelah kebijakan dikonfigurasi, Enterprise Distributed Application Service (EDAS) dapat memantau status instans Aplikasi B, C, dan D, serta menambahkan atau menghapus instans secara dinamis untuk memastikan panggilan layanan yang berhasil.

Berikut adalah proses eject outlier:
EDAS mendeteksi apakah Aplikasi B, C, atau D memiliki instans abnormal. Jika instans abnormal ditemukan, EDAS menentukan apakah akan menghapus instans abnormal dari aplikasi berdasarkan parameter Instance Removal Rate Threshold.
EDAS tidak mendistribusikan permintaan panggilan Aplikasi A ke instans yang dihapus.
EDAS mendeteksi apakah instans abnormal telah pulih berdasarkan parameter Recovery Detection Unit Time.
Interval deteksi meningkat secara linear dengan nilai parameter Recovery Detection Unit Time. Nilai default Unit Waktu Deteksi Pemulihan adalah 30000 ms, yang sama dengan 0,5 menit. Jika ambang batas yang ditentukan oleh parameter Max Number of Instance Checked Before Restoration tercapai, EDAS mendeteksi apakah instans abnormal telah pulih pada interval deteksi maksimum.
Setelah instans abnormal pulih, EDAS menambahkan kembali instans tersebut ke aplikasi untuk memproses permintaan panggilan. Interval deteksi diatur ulang ke nilai parameter Recovery Detection Unit Time, seperti 30000 ms.
Jika rasio instans abnormal dari penyedia melebihi ambang batas yang ditentukan oleh parameter Ambang Batas Laju Penghapusan Instans, EDAS menghapus instans abnormal berdasarkan ambang batas ini.
Jika penyedia hanya memiliki satu instans yang tersedia, EDAS tidak akan menghapus instans ini meskipun ambang batas yang ditentukan oleh parameter Ambang Batas Laju Kesalahan terlampaui.
Buat kebijakan penghapusan instans outlier
Untuk aplikasi HSF, Anda dapat membuat kebijakan penghapusan instans outlier pada tingkat aplikasi dan layanan.
Masuk ke .
- Di bilah navigasi sisi kiri, pilih .
- Di bilah navigasi atas, pilih wilayah. Di halaman Configurations, pilih namespace layanan mikro dari daftar drop-down. Kemudian, klik Create Configuration.
- Di panel Create Configuration, atur parameter. Kemudian, klik Create di bagian bawah panel.

Berikut ini menjelaskan parameter untuk membuat kebijakan penghapusan instans outlier:
- Region: Nilainya adalah region yang Anda pilih sebelum membuat kebijakan penghapusan instans outlier dan tidak dapat diubah.
- Microservice Namespace: Nilainya adalah namespace yang Anda pilih sebelum membuat kebijakan penghapusan instans outlier dan tidak dapat diubah.
- Data ID: Masukkan ID untuk kebijakan penghapusan instans outlier dalam format
<App ID>.QOSCONFIG. Anda bisa mendapatkanApp ID(ID aplikasi) di halaman detail aplikasi. - Group: Nilainya adalah HSF dan tidak dapat diubah.
- Data encryption: Nyalakan atau matikan sakelar untuk menentukan apakah akan mengenkripsi data. Jika kebijakan penghapusan instans outlier berisi data sensitif, kami sarankan Anda menyalakan Enkripsi data untuk mengurangi risiko kebocoran data.
- Configuration Format: Pilih format data untuk konten kebijakan penghapusan instans outlier. Sistem memverifikasi data berdasarkan format yang Anda pilih.
- Configuration Content: Masukkan konten kebijakan penghapusan instans outlier.
Anda dapat membuat kebijakan penghapusan instans outlier untuk aplikasi HSF pada tingkat aplikasi atau layanan dengan menggunakan properti terkait dan nilai yang Anda tentukan untuk mereka. Contoh berikut menunjukkan cara membuat kebijakan penghapusan instans outlier pada kedua tingkat tersebut.
Catatan Kebijakan penghapusan instans outlier tingkat layanan memiliki prioritas lebih tinggi daripada kebijakan penghapusan instans outlier tingkat aplikasi.- Contoh cara membuat kebijakan penghapusan instans outlier tingkat aplikasi
{ "DEFAULT": { "errorRateThreshold":0.5, "isolationTime":60000, "maxIsolationRate":0.2, "maxIsolationTimeMultiple":15, "qosEnabled":true, "requestThreshold":20, "timeWindowInSeconds":10, "ipDimension":true } } - Contoh cara membuat kebijakan penghapusan instans outlier tingkat layanan
{ "DEFAULT": { "errorRateThreshold":0.5, "isolationTime":60000, "maxIsolationRate":0.2, "maxIsolationTimeMultiple":15, "qosEnabled":true, "requestThreshold":20, "timeWindowInSeconds":10 }, "service:version": { "errorRateThreshold":0.5, "isolationTime":60000, "maxIsolationRate":0.2, "maxIsolationTimeMultiple":15, "qosEnabled":true, "requestThreshold":20, "timeWindowInSeconds":10 } }
Jika Anda memiliki persyaratan lain, lihat Parameter untuk Membuat Kebijakan Penghapusan Instans Outlier.
- Contoh cara membuat kebijakan penghapusan instans outlier tingkat aplikasi
Parameter untuk membuat kebijakan penghapusan instans outlier
Anda dapat membuat kebijakan penghapusan instans outlier dengan menggunakan properti terkait dalam manajemen konfigurasi, atau dengan menggunakan parameter -D untuk Java Virtual Machine (JVM). Kebijakan penghapusan instans outlier yang dibuat dalam manajemen konfigurasi memiliki prioritas lebih tinggi daripada yang dibuat dengan menggunakan parameter -D. Kami sarankan Anda membuat kebijakan penghapusan instans outlier dalam manajemen konfigurasi.
| Parameter | Properti | Parameter -D | Deskripsi | Nilai default |
| Jumlah maksimum panggilan | requestThreshold | -Dhsf.qos.request.threshold | Jumlah maksimum panggilan. Instans outlier dihapus hanya jika jumlah panggilan dalam jendela statistik terbaru melebihi ambang batas. | 10 |
| Batas bawah laju kesalahan | errorRateThreshold | -Dhsf.qos.error.rate.threshold | Batas bawah laju kesalahan. Ketika laju kesalahan instans yang diterapkan dengan aplikasi atau layanan yang dipanggil melebihi batas bawah, instans tersebut dihapus. | 0,5 |
| Batas atas rasio penghapusan instans | maxIsolationRate | -Dhsf.qos.max.isolation.rate | Proporsi maksimum instans abnormal yang akan dihapus. Jika ambang batas tercapai, tidak ada lagi instans abnormal yang dihapus. Misalnya, sebuah aplikasi memiliki enam instans secara total. Jika Anda mengatur parameter ini ke 60%, jumlah maksimum instans yang dapat dihapus adalah 3,6, yang dibulatkan ke bawah menjadi bilangan bulat terdekat yaitu 3. Angka tersebut dihitung dengan rumus berikut: 6 × 60% = 3,6. Jika hasil perhitungan kurang dari 1, satu instans dihapus. | 0,2 |
| Waktu unit deteksi pemulihan | isolationTime | -Dhsf.qos.isolation.time | Waktu unit yang digunakan untuk mendeteksi apakah instans abnormal telah pulih. Setelah instans abnormal dihapus, EDAS terus mendeteksi apakah instans abnormal telah pulih pada interval yang bertambah dengan waktu unit yang ditentukan. Satuannya adalah ms. | 60 × 1.000 ms (1 menit) |
| Jumlah maksimum kali tidak dipulihkan | maxIsolationTimeMultiple | -Dhsf.qos.max.isolation.time.multiple | Jumlah maksimum deteksi. EDAS terus mendeteksi instans abnormal, dan interval deteksi meningkat secara linear dengan jumlah deteksi oleh waktu unit deteksi pemulihan. Ketika jumlah maksimum deteksi yang ditentukan tercapai, EDAS terus mendeteksi apakah instans abnormal telah pulih berdasarkan interval deteksi terpanjang. Misalnya, waktu unit deteksi pemulihan diatur ke 60.000 ms, dan jumlah maksimum kali tidak dipulihkan diatur ke 60. Jika instans abnormal tetap abnormal setelah dideteksi 60 kali, instans tersebut kemudian dideteksi pada interval 60 menit, yang dihitung dengan rumus berikut: 60 × 60.000 ms = 60 menit. Jika instans pulih sebelum jumlah maksimum deteksi yang ditentukan tercapai, interval deteksi diatur ulang ke interval awal, yaitu nilai waktu unit deteksi pemulihan. | 60 |
| Aktifkan penghapusan instans outlier | qosEnabled | -Dhsf.qos.enable | Menentukan apakah akan mengaktifkan penghapusan instans outlier untuk aplikasi atau layanan. | false |
| Jendela waktu statistik | timeWindowInSeconds | -Dhsf.qos.time.window.in.seconds | Jendela waktu untuk statistik jumlah maksimum panggilan. Jendela waktu ini adalah periode statistik. | 10s |
| Tipe pengecualian | bizExceptionPredicateClassName | -Dhsf.qos.biz.exception.class.name | Tipe pengecualian dari instans aplikasi atau layanan. Secara default, semua pengecualian layanan dianggap sebagai pengecualian. Anda juga dapat mendefinisikan pengecualian layanan tertentu dengan menggunakan antarmuka kustom. Misalnya, Anda dapat mendefinisikan pengecualian dengan cara berikut:
| com.taobao.hsf.exception.CountBizExceptionPredicate: mendefinisikan semua pengecualian layanan sebagai pengecualian. |
Verifikasi hasil
Fitur eject outlier diaktifkan setelah Anda mengonfigurasi dan membuat kebijakan eject outlier. Anda dapat pergi ke halaman detail aplikasi untuk mana Anda telah mengonfigurasi eject outlier untuk melihat informasi pemantauan aplikasi. Misalnya, Anda dapat memeriksa apakah permintaan panggilan masih diteruskan ke instans 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 memeriksa apakah kebijakan eject outlier berlaku. Untuk informasi lebih lanjut, lihat Ikhtisar Aplikasi.