Di Microservices Engine (MSE), Anda dapat menggunakan aturan pemutusan sirkuit untuk memantau waktu tanggapan permintaan atau rasio permintaan abnormal pada suatu aplikasi atau aplikasi downstream yang menjadi dependensinya. Jika ambang batas yang ditentukan tercapai, MSE segera menurunkan prioritas aplikasi downstream tersebut. Sistem tidak akan memanggil aplikasi downstream yang bermasalah selama periode tertentu guna menjaga stabilitas dan ketersediaan tinggi aplikasi Anda. Setelah periode tersebut berakhir, sistem akan melanjutkan panggilan ke aplikasi downstream tersebut. Topik ini menjelaskan cara membuat aturan pemutusan sirkuit dan menyediakan contoh aturan untuk skenario umum.
Prasyarat
Microservices Engine (MSE) Edisi Perusahaan telah diaktifkan.
Fitur Tata Kelola Layanan Mikro MSE telah diaktifkan untuk aplikasi layanan mikro Anda. Untuk informasi selengkapnya, lihat topik berikut:
Informasi latar belakang
Selain pengendalian trafik, pemutusan sirkuit untuk metode atau dependensi downstream yang tidak stabil dalam jejak panggilan juga merupakan langkah penting dalam perlindungan trafik. Mengingat kompleksitas hubungan panggilan, kesalahan pada bagian mana pun dalam jejak panggilan dapat menyebabkan kegagalan permintaan, bahkan memperparah ketidakstabilan hingga membuat seluruh jejak menjadi tidak tersedia. Ketika suatu metode dalam jejak panggilan menjadi tidak stabil—misalnya mengalami timeout atau rasio permintaan abnormal meningkat—fitur pemutusan sirkuit akan membatasi panggilan ke metode tersebut. Hal ini memungkinkan permintaan gagal dengan cepat dan mencegah kesalahan menyebar ke seluruh jejak.
Dalam kebanyakan kasus, aturan pemutusan sirkuit diterapkan pada skenario di mana Anda perlu menurunkan prioritas aplikasi yang memiliki dependensi lemah.
Untuk informasi lebih lanjut tentang contoh aturan pemutusan sirkuit, lihat bagian Skenario 1: Buat aturan pemutusan sirkuit untuk panggilan lambat dan Skenario 2: Buat aturan pemutusan sirkuit untuk permintaan abnormal dalam topik ini.
Akses fitur
Masuk ke Konsol MSE, lalu pilih Wilayah di bilah navigasi atas.
Di panel navigasi sebelah kiri, pilih Microservices Governance > Application Governance.
Pada halaman Application list, temukan dan klik aplikasi yang ingin Anda kelola. Di halaman detail aplikasi tersebut, buat aturan pemutusan sirkuit dengan salah satu metode berikut:
Di panel navigasi sebelah kiri, klik API Details. Di halaman yang muncul, klik tab Client. Pilih antarmuka lalu klik tab Circuit Breaking. Di tab Circuit Breaking, klik Added fusing rule.
Di panel navigasi sebelah kiri, klik Traffic management. Klik tab Flow protection, klik Fuse rule, lalu klik Added fusing rule.
Di kotak dialog Add Circuit Breaking Rule, konfigurasi parameter aturan lalu klik New.
Untuk informasi lebih lanjut tentang parameter aturan, lihat bagian Parameters dalam topik ini.
Detail aturan
Tabel berikut menjelaskan parameter dalam kotak dialog Add Circuit Breaking Rule.
Parameter | Deskripsi |
Interface name | Sumber daya aplikasi tempat aturan ini berlaku. |
Statistical window duration | Panjang jendela waktu. Rentang nilai yang valid adalah 1 detik hingga 120 menit. |
Minimum number of requests | Jumlah minimum permintaan untuk memicu pemutusan sirkuit. Jika jumlah permintaan dalam jendela waktu saat ini kurang dari nilai parameter ini, pemutusan sirkuit tidak akan dipicu meskipun aturan pemutusan sirkuit terpenuhi. |
Threshold Type | Jenis ambang batas. Nilai yang valid: Slow call ratio (%) dan Abnormal proportion (%).
|
Circuit Breaking Duration (s) | Periode penerapan pemutusan sirkuit. Jika pemutusan sirkuit diterapkan pada sumber daya, semua permintaan akan langsung gagal selama durasi yang dikonfigurasi. |
Circuit Breaking Policy | Kebijakan pemulihan untuk fase pemulihan pemutus sirkuit (status setengah terbuka).
|
Skenario 1: Buat aturan pemutusan sirkuit untuk panggilan lambat
Sebagai contoh, jika Anda memanggil layanan pihak ketiga dan waktu tanggapannya lama, panggilan ke antarmuka saat ini akan terpengaruh. Untuk mengatasi masalah ini, Anda dapat menerapkan pemutusan sirkuit pada panggilan lambat tersebut.
Di kotak dialog Add Circuit Breaking Rule, konfigurasi parameter yang dijelaskan dalam tabel berikut.
Parameter | Contoh | Deskripsi |
Interface name | test | Nama antarmuka. |
Statistical window duration | 1 | Atur parameter ini ke 1. Satuan: detik. |
Minimum number of requests | 10 | Jumlah minimum permintaan untuk memicu pemutus sirkuit adalah 10. |
Threshold Type | Slow call ratio | Atur parameter ini ke Slow call ratio (%). |
Slow call RT | 1000 | Atur parameter ini ke 1000. Satuan: milidetik. Jika waktu tanggapan suatu permintaan melebihi 1.000 milidetik, permintaan tersebut dihitung sebagai panggilan lambat. |
Circuit Breaking Ratio Threshold | 80% | Atur parameter ini ke 80. Satuan: %. Jika persentase panggilan lambat mencapai 80%, pemutusan sirkuit dipicu. |
Circuit Breaking Duration (s) | 10 | Atur parameter ini ke 10 detik. |
Circuit Breaking Policy | Single detection recovery | Setelah periode pemutusan sirkuit berakhir, pemutus sirkuit mendeteksi permintaan berikutnya. Jika permintaan tersebut bukan panggilan lambat atau permintaan abnormal, pemutusan sirkuit berakhir. Jika tidak, pemutusan sirkuit dipicu kembali. |
Setelah aturan pemutusan sirkuit diaktifkan, jika jumlah permintaan melebihi 10 dan persentase panggilan lambat lebih dari 80% dalam satu detik, semua permintaan akan gagal selama 10 detik berikutnya. Setelah 10 detik, pemutus sirkuit akan memeriksa permintaan berikutnya. Jika waktu tanggapan permintaan tersebut kurang dari 1.000 milidetik, pemutusan sirkuit berakhir. Jika tidak, pemutusan sirkuit dipicu kembali.
Skenario 2: Buat aturan pemutusan sirkuit untuk permintaan abnormal
Sebagai contoh, ketika konten layanan pihak ketiga ditampilkan, permintaan abnormal terjadi dalam sistem. Jika rasio permintaan abnormal tinggi, Anda dapat menerapkan pemutusan sirkuit pada permintaan abnormal tersebut untuk memastikan pengalaman pengguna yang lebih baik.
Di kotak dialog Add Circuit Breaking Rule, konfigurasi parameter yang dijelaskan dalam tabel berikut.
Parameter | Contoh | Deskripsi |
Interface name | test | Nama API. |
Statistical window duration | 1 | Periode pengumpulan statistik adalah 1 detik. |
Minimum number of requests | 10 | Jumlah minimum permintaan untuk memicu pemutus sirkuit adalah 10. |
Threshold Type | Abnormal proportion | Atur parameter ini ke Abnormal proportion (%). |
Circuit Breaking Ratio Threshold | 80% | Atur parameter ini ke 80. Satuan: %. Jika persentase permintaan abnormal mencapai 80%, pemutusan sirkuit dipicu. |
Circuit Breaking Duration (s) | 10 | Atur parameter ini ke 10 detik. |
Circuit Breaking Policy | Single detection recovery | Setelah periode pemutusan sirkuit berakhir, pemutus sirkuit mendeteksi permintaan berikutnya. Jika permintaan tersebut bukan panggilan lambat atau permintaan abnormal, pemutusan sirkuit berakhir. Jika tidak, pemutusan sirkuit dipicu kembali. |
Setelah aturan pemutusan sirkuit diaktifkan, jika jumlah permintaan melebihi 10 dan persentase permintaan abnormal lebih dari 80% dalam satu detik, semua permintaan akan gagal selama 10 detik berikutnya. Setelah 10 detik, pemutus sirkuit akan memeriksa permintaan berikutnya. Jika permintaan tersebut normal, pemutusan sirkuit berakhir. Jika tidak, pemutusan sirkuit dipicu kembali.