全部产品
Search
文档中心

Enterprise Distributed Application Service:Jamin ketersediaan aplikasi HSF dengan penghapusan instans outlier

更新时间:Mar 12, 2026

Ketika penyedia layanan High-speed Service Framework (HSF) memiliki instans yang tidak sehat, konsumen tidak memiliki cara bawaan untuk mendeteksinya. Permintaan yang diarahkan ke instans tersebut gagal, sehingga menurunkan ketersediaan konsumen. Fitur penghapusan instans outlier mengatasi masalah ini dengan memantau instans penyedia secara terus-menerus, secara otomatis mengeluarkan instans yang tidak sehat dari pool load balancing, dan memulihkannya setelah sembuh.

Cara kerja

Pertimbangkan sistem di mana Aplikasi A memanggil instans dari Aplikasi B, C, dan D. Jika Aplikasi B memiliki satu instans yang tidak sehat, sedangkan Aplikasi C dan D masing-masing memiliki dua instans, sebagian permintaan dari Aplikasi A akan gagal. Seiring bertambahnya jumlah instans penyedia yang tidak sehat, performa keseluruhan Aplikasi A menurun.

Outlier ejection

Untuk melindungi Aplikasi A, konfigurasikan kebijakan outlier ejection di sisi konsumen. Enterprise Distributed Application Service (EDAS) kemudian mengelola setiap instans penyedia melalui siklus hidup berikut:

  1. Detect. EDAS memantau instans penyedia dan mengidentifikasi instans yang laju error-nya melebihi ambang batas yang dikonfigurasi dalam jendela waktu statistik.

  2. Eject. EDAS menghapus instans yang tidak sehat dari pool load balancing sesuai dengan rasio maksimum penghapusan instans. Permintaan dari Aplikasi A tidak lagi diarahkan ke instans yang di-eject.

  3. Probe. EDAS secara berkala memeriksa apakah instans yang di-eject telah pulih. Interval probe dimulai dari waktu unit deteksi pemulihan yang dikonfigurasi dan meningkat secara linear pada setiap probe gagal berturut-turut.

  4. Cap. Ketika jumlah probe gagal berturut-turut mencapai nilai maksimum yang dikonfigurasi, interval probe berhenti meningkat dan tetap pada nilai maksimumnya.

  5. Restore. Setelah instans yang di-eject pulih, EDAS menambahkannya kembali ke pool dan mengatur ulang interval probe ke nilai awal.

Catatan
  • Jika rasio instans yang tidak sehat melebihi rasio maksimum penghapusan instans, EDAS hanya meng-eject instans hingga batas rasio tersebut. Hal ini mencegah penghapusan terlalu banyak instans sekaligus.

  • Jika penyedia hanya memiliki satu instans yang tersedia, EDAS tidak meng-eject-nya, meskipun laju error-nya melebihi ambang batas.

Buat kebijakan outlier ejection

Aplikasi HSF mendukung kebijakan outlier ejection pada dua tingkatan:

  • Tingkat aplikasi — Berlaku untuk semua layanan yang disediakan oleh aplikasi. Gunakan "ipDimension": true dalam konfigurasi.

  • Tingkat layanan — Menargetkan layanan dan versi tertentu. Kebijakan ini memiliki prioritas lebih tinggi daripada kebijakan tingkat aplikasi.

Sebelum memulai, pastikan Anda telah:

  • Men-deploy aplikasi HSF di EDAS

  • Memiliki akses ke Konsol EDAS

Langkah 1: Buka manajemen konfigurasi

  1. Masuk ke Konsol EDAS.

  2. Di panel navigasi sebelah kiri, pilih Application Management > Microservice Configurations > Configurations.

  3. Di bilah navigasi atas, pilih Wilayah. Pada halaman Configurations, pilih namespace mikroservis dari daftar drop-down.

  4. Klik Create Configuration.

Langkah 2: Atur parameter kebijakan

Pada panel Create Configuration, atur parameter berikut:

Application configuration management - Create an outlier instance removal policy
ParameterDeskripsi
RegionDiisi otomatis dengan wilayah yang Anda pilih. Tidak dapat diubah.
Microservice NamespaceDiisi otomatis dengan namespace yang Anda pilih. Tidak dapat diubah.
Data IDMasukkan ID dalam format <App ID>.QOSCONFIG. Temukan App ID di halaman detail aplikasi.
GroupDitetapkan ke HSF. Tidak dapat diubah.
Data encryptionAktifkan untuk mengenkripsi data kebijakan sensitif dan mengurangi risiko kebocoran data.
Configuration FormatPilih format data. Sistem memvalidasi konten berdasarkan format ini.
Configuration ContentMasukkan konfigurasi kebijakan dalam format JSON. Lihat contoh di bawah.

Langkah 3: Masukkan konfigurasi kebijakan

Gunakan contoh JSON berikut sebagai templat. Ganti nilai parameter sesuai kebutuhan Anda.

Kebijakan tingkat aplikasi

Konfigurasi ini berlaku untuk semua layanan di bawah aplikasi. Atur "ipDimension": true untuk mengaktifkan pelacakan per instans.

{
  "DEFAULT": {
    "errorRateThreshold": 0.5,
    "isolationTime": 60000,
    "maxIsolationRate": 0.2,
    "maxIsolationTimeMultiple": 15,
    "qosEnabled": true,
    "requestThreshold": 20,
    "timeWindowInSeconds": 10,
    "ipDimension": true
  }
}

Kebijakan tingkat layanan

Definisikan blok DEFAULT sebagai garis dasar dan tambahkan blok "service:version" untuk override spesifik layanan. Blok tingkat layanan memiliki prioritas lebih tinggi.

{
  "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
  }
}

Ganti service:version dengan nama layanan dan versi aktual, misalnya com.alibaba.edas.OrderService:1.0.0.

Langkah 4: Simpan kebijakan

Klik Create di bagian bawah panel.

Referensi parameter

Konfigurasikan outlier ejection melalui manajemen konfigurasi (properti JSON) atau parameter JVM -D. Pengaturan manajemen konfigurasi memiliki prioritas lebih tinggi daripada parameter -D.

ParameterPropertiParameter JVMDefaultDeskripsi
Aktifkan penghapusan instans outlierqosEnabled-Dhsf.qos.enablefalseAktifkan atau nonaktifkan outlier ejection untuk aplikasi atau layanan.
Ambang jumlah permintaanrequestThreshold-Dhsf.qos.request.threshold10Jumlah minimum permintaan dalam jendela statistik saat ini sebelum ejection dapat terjadi. Mencegah ejection berdasarkan data sampel yang tidak mencukupi.
Ambang batas laju errorerrorRateThreshold-Dhsf.qos.error.rate.threshold0.5Laju error di atas ambang batas yang menyebabkan suatu instans di-eject. 0.5 berarti 50%.
Rasio maksimum penghapusan instansmaxIsolationRate-Dhsf.qos.max.isolation.rate0.2Proporsi maksimum instans yang dapat di-eject sekaligus. Hasilnya dibulatkan ke bawah. Contoh: 6 instans x 60% = 3,6, dibulatkan ke bawah menjadi 3. Jika hasilnya kurang dari 1, satu instans tetap dapat di-eject.
Waktu unit deteksi pemulihanisolationTime-Dhsf.qos.isolation.time60000 (1 menit)Interval probe dasar dalam milidetik. Setelah di-eject, EDAS melakukan probe terhadap instans dengan interval yang meningkat secara linear: 1x, 2x, 3x, ... dikalikan dengan nilai ini.
Jumlah maksimum probemaxIsolationTimeMultiple-Dhsf.qos.max.isolation.time.multiple60Jumlah maksimum probe sebelum interval berhenti meningkat. Contoh: dengan waktu unit 60.000 ms dan jumlah maksimum 60, interval terpanjang adalah 60 x 60.000 ms = 60 menit. Jika instans pulih sebelum mencapai jumlah ini, interval diatur ulang ke waktu unit dasar.
Jendela waktu statistiktimeWindowInSeconds-Dhsf.qos.time.window.in.seconds10 (detik)Durasi jendela geser untuk menghitung jumlah permintaan dan menghitung laju error.
Jenis exceptionbizExceptionPredicateClassName-Dhsf.qos.biz.exception.class.nameCountBizExceptionPredicateMenentukan exception mana yang dihitung dalam laju error. Opsi: com.taobao.hsf.exception.CountBizExceptionPredicate (hitung semua exception layanan), com.taobao.hsf.exception.IgnoreBizExceptionPredicate (abaikan semua exception layanan), atau kelas kustom yang mengimplementasikan com.taobao.hsf.Predicate.

Verifikasi hasil

Setelah kebijakan diterapkan, verifikasi melalui pemantauan aplikasi:

  1. Buka halaman detail aplikasi di Konsol EDAS.

  2. Buka tab Topology.

  3. Periksa indikator berikut:

    • Request routing — Pastikan permintaan tidak lagi diarahkan ke instans yang di-eject.

    • Error Rate / 1 Min — Pastikan laju error telah turun di bawah errorRateThreshold yang dikonfigurasi.

Untuk metrik pemantauan terperinci, lihat Application overview.