Saat layanan mikro diskalakan, satu ketergantungan yang lambat atau lonjakan traffic tak terduga dapat menyebar ke seluruh rantai panggilan dan menyebabkan sistem produksi mati. Perlindungan traffic di Microservices Engine (MSE) menjadikan traffic sebagai titik awal dan memastikan stabilitas layanan melalui pembatasan kecepatan real-time, pemutusan sirkuit dan degradasi, serta kontrol beban berlebih sistem di seluruh aplikasi terdistribusi. Sebagai produk komersial dari framework open source Sentinel, fitur ini merupakan komponen inti di balik acara promosi berskala besar seperti Double 11.
Cara kerja perlindungan traffic
Dalam aplikasi terdistribusi, permintaan klien melewati beberapa lapisan—gerbang, firewall, dan Network Load Balancer (NLB)—sebelum mencapai layanan jaringan antarmuka depan, lalu layanan backend. Sepanjang perjalanan tersebut, layanan downstream dan aplikasi pihak ketiga mungkin dipanggil.
Perlindungan traffic beroperasi di seluruh alur permintaan ini. Fitur ini menyediakan langkah-langkah perlindungan traffic yang profesional dan stabil, menganalisis pola traffic secara berkelanjutan di setiap lapisan, serta menerapkan aturan perlindungan dalam hitungan detik. Pembaruan aturan langsung berlaku seketika.
Model perlindungan memiliki dua properti inti:
Deteksi dan penegakan dalam hitungan detik: Mendeteksi anomali serta menerapkan aturan dalam hitungan detik setelah terjadi perubahan lalu lintas.
Pembaruan aturan dinamis: Mendorong aturan perlindungan baru atau yang dimodifikasi secara real-time.
Kapan menggunakan tiap fitur
Perlindungan traffic mencakup empat fitur pelengkap. Gunakan tabel berikut untuk mengidentifikasi fitur yang tepat sesuai skenario Anda:
| Skenario | Masalah | Fitur | Cara membantu |
|---|---|---|---|
| Flash sale atau acara promosi | Lonjakan traffic mendadak melebihi kapasitas backend | Ingress throttling | Membatasi laju permintaan inbound pada entri layanan agar sesuai dengan kapasitas downstream |
| Penggeseran beban puncak untuk pesan | Traffic pesan yang tiba-tiba menurunkan performa konsumen | Ingress throttling + concurrency isolation | Membatasi laju permintaan dan mengisolasi konsumen lambat agar tidak menghabiskan resource yang dibagikan |
| Cluster throttling | Total traffic melebihi kapasitas keseluruhan kluster layanan | Ingress throttling | Menerapkan batas laju permintaan yang didistribusikan di seluruh node kluster |
| Parameter hotspot | Satu nilai parameter (misalnya, ID item yang sering diakses) menghasilkan beban tidak proporsional | Hotspot isolation | Memisahkan traffic hotspot dari traffic normal sehingga permintaan normal tetap mendapatkan kapasitasnya |
| Kegagalan berantai | Ketergantungan yang lambat atau gagal menyebabkan seluruh rantai panggilan mati | Circuit breaking | Memicu pemutus sirkuit pada ketergantungan yang tidak stabil untuk membatasi radius dampak |
Detail fitur
Perlindungan traffic menyediakan langkah-langkah pencegahan yang profesional dan beragam:
Ingress throttling
Mengontrol laju permintaan inbound berdasarkan kapasitas layanan. Terapkan pembatasan kecepatan pada titik masuk aplikasi seperti gerbang, aplikasi antarmuka depan, dan penyedia layanan untuk mencegah traffic melebihi kemampuan layanan downstream.
Ingress throttling merupakan lini pertahanan pertama: menolak permintaan berlebih sebelum memasuki sistem, sehingga melindungi semua layanan downstream dalam rantai panggilan.
Concurrency isolation
Membatasi jumlah maksimum thread konkuren untuk suatu resource tertentu. Jika panggilan lambat menahan thread terlalu lama, antarmuka lain tetap responsif karena kolam thread tidak habis.
Gunakan concurrency isolation ketika layanan Anda berbagi kolam thread umum dan satu ketergantungan lambat berpotensi memonopoli seluruh thread yang tersedia.
Hotspot isolation
Memisahkan traffic hotspot dari traffic normal. Hal ini mencegah hotspot yang tidak valid merebut kapasitas traffic normal. Saat nilai parameter tertentu—seperti ID item yang sering diakses—menghasilkan beban tidak proporsional, hotspot isolation membatasi laju untuk parameter tersebut sehingga permintaan normal tetap mendapatkan bagian kapasitasnya.
Circuit breaking pada ketergantungan tidak stabil
Menerapkan pemutusan sirkuit baik antar maupun di dalam aplikasi. Ketika ketergantungan downstream menjadi tidak stabil—merespons lambat atau mengembalikan error di atas ambang batas—pemutus sirkuit akan aktif untuk membatasi radius dampak dan mencegah kegagalan berantai.
Pemantauan
Perlindungan traffic menyediakan pemantauan traffic real-time serta diagnosis dan analisis traffic di tingkat klien. Hal ini membantu personel O&M mengambil langkah pencegahan untuk melindungi stabilitas aplikasi.
Perlindungan traffic menyediakan tiga tingkat observabilitas:
| Tingkat | Cakupan |
|---|---|
| Pemantauan single-node | Metrik real-time untuk instans layanan individual |
| Pemantauan agregat | Tampilan menyeluruh kluster yang menggabungkan metrik dari semua node |
| Kueri data historis | Data traffic masa lalu yang disimpan untuk analisis retrospektif |
Referensi
Sentinel — framework open source yang menjadi dasar perlindungan traffic.