Stabilitas layanan mikro menjadi perhatian utama bagi pelanggan yang menggunakan layanan mikro. Dengan transisi dari arsitektur monolitik ke arsitektur terdistribusi dan perubahan dalam metode penyebaran, dependensi antar layanan semakin kompleks, sehingga ketersediaan tinggi sangat penting untuk sistem bisnis. Perlindungan trafik Microservices Engine (MSE) adalah layanan yang memanfaatkan modul seperti pembatasan dan perlindungan hotspot untuk meningkatkan ketersediaan tinggi aplikasi. Topik ini menjelaskan aturan perlindungan trafik beserta skenario penggunaannya.
Skenario ketidakstabilan
Berikut adalah beberapa masalah ketidakstabilan yang mungkin Anda hadapi dalam lingkungan produksi:
Selama kegiatan promosi berskala besar, lonjakan trafik dapat menyebabkan pesanan tidak dapat diproses akibat beban sistem berlebihan, beban tinggi, atau kerusakan sistem.
Produk yang awalnya tidak dikenal menjadi populer secara tiba-tiba, mengakibatkan kegagalan cache, crash database, atau perebutan sumber daya.
Panggilan gagal karena layanan pihak ketiga yang tidak stabil, thread pool penuh, atau sejumlah besar panggilan menunggu untuk diproses, sehingga seluruh proses panggilan terhenti.
Skenario ketidakstabilan ini dapat menyebabkan konsekuensi serius. Namun, banyak pengembang tidak menerapkan perlindungan ketersediaan tinggi terkait trafik dan dependensi. Perlindungan trafik MSE membantu mencegah dampak faktor-faktor tidak stabil ini pada trafik serta memberikan perlindungan dengan ketersediaan tinggi untuk memastikan stabilitas layanan.
Skenario inti
Tabel berikut menjelaskan aturan perlindungan trafik dan skenario inti yang sesuai.
Aturan perlindungan trafik | Deskripsi | Skema inti | Referensi |
Aturan pembatasan | Anda dapat menggunakan MSE untuk mengonfigurasi aturan pembatasan berdasarkan permintaan per detik (QPS). Jika nilai QPS melebihi ambang batas tertentu, sistem secara otomatis menolak permintaan tambahan. | Aturan pembatasan cocok untuk skenario di mana lonjakan trafik perlu dibatasi. Dalam skenario ini, aturan pembatasan memungkinkan sistem untuk terus memproses permintaan dan mencegah kegagalan layanan. | |
Aturan isolasi | Aturan isolasi digunakan untuk mengontrol jumlah panggilan berjalan bersamaan untuk mencegah panggilan lambat berlebihan merebut sumber daya yang dialokasikan untuk panggilan normal. | Aturan isolasi cocok untuk skenario di mana layanan pihak ketiga dipanggil dan sejumlah besar panggilan lambat merebut sumber daya yang dialokasikan untuk panggilan normal. Aturan isolasi memastikan ketersediaan layanan. | |
Aturan pemutusan sirkuit | Aturan pemutusan sirkuit memungkinkan sistem secara otomatis melakukan pemutusan sirkuit atau degradasi pada panggilan tidak stabil dengan dependensi lemah. Aturan ini mencegah kerusakan sistem yang disebabkan oleh faktor ketidakstabilan. | Aturan pemutusan sirkuit digunakan untuk mencegah kerusakan sistem yang disebabkan oleh faktor ketidakstabilan, seperti panggilan lambat atau pengecualian layanan. Misalnya, aturan pemutusan sirkuit ditentukan untuk menonaktifkan panggilan layanan pihak ketiga yang memiliki waktu respons (RT) tinggi. | |
Aturan perlindungan parameter hotspot | Aturan perlindungan parameter hotspot digunakan agar sistem secara otomatis mengidentifikasi parameter hotspot dan mengontrol frekuensi akses atau konkurensi setiap nilai hotspot. Aturan perlindungan parameter hotspot dapat secara efektif mencegah sumber daya yang dialokasikan untuk panggilan normal direbut akibat akses terlalu sering ke parameter tertentu. | Aturan perlindungan parameter hotspot cocok untuk skenario di mana data yang paling sering diakses dalam data hotspot tertentu perlu dikendalikan. Misalnya, Anda dapat menggunakan aturan perlindungan parameter hotspot untuk mengontrol ID produk yang paling sering dibeli selama periode tertentu. Ini mencegah sejumlah besar permintaan dikirim ke database saat kegagalan cache terjadi akibat akses sering ke beberapa produk. | Buat aturan pembatasan parameter panas untuk permintaan RPC Buat aturan pembatasan parameter panas untuk permintaan HTTP |
Aturan pembatasan
Skema
Trafik bersifat acak dan sulit diprediksi. Lonjakan trafik dapat terjadi pada waktu tertentu, seperti pukul 00:00 pada 11 November (Double 11). Namun, kapasitas sistem selalu terbatas. Jika trafik puncak melebihi kapasitas sistem, konsekuensi berikut dapat terjadi, yang mengakibatkan kerusakan sistem: (1) Sejumlah besar permintaan menunggu untuk diproses. (2) Pemrosesan permintaan lambat. (3) Utilisasi CPU tinggi atau terjadi overload sistem. Untuk mengatasi masalah ini, Anda harus membatasi lonjakan trafik. Pembatasan trafik memungkinkan sistem memproses sebanyak mungkin permintaan tanpa menyebabkan kerusakan sistem. Pembatasan trafik merupakan metode umum yang cocok untuk skenario seperti lonjakan trafik.
Deskripsi Aturan
Dalam skenario di mana portal web atau penyedia layanan tersedia, Anda harus mencegah penyedia layanan kewalahan oleh lonjakan trafik. Dalam hal ini, trafik dibatasi berdasarkan kemampuan layanan penyedia layanan atau dibatasi untuk pemanggil layanan tertentu. Anda dapat mengevaluasi kemampuan pemrosesan antarmuka inti melalui uji stres terlebih dahulu, lalu menggunakan MSE untuk mengonfigurasi aturan pembatasan berbasis QPS. Setelah aturan pembatasan berbasis QPS dikonfigurasi, sistem secara otomatis menolak permintaan tambahan jika nilai QPS melebihi ambang batas tertentu. Untuk informasi lebih lanjut tentang aturan pembatasan, lihat Buat Aturan Pembatasan.
Kontrol konkurensi
Skema
Dalam banyak kasus, layanan memanggil modul lain seperti layanan jarak jauh, database, atau API pihak ketiga. Misalnya, saat Anda membayar Tagihan, API yang disediakan oleh UnionPay mungkin dipanggil secara jarak jauh. Saat Anda menanyakan harga suatu produk, mungkin terlibat kueri database. Namun, stabilitas layanan dependen ini tidak dapat dijamin. Jika layanan dependen tidak stabil dan waktu respons permintaan meningkat, waktu respons metode yang digunakan untuk memanggil layanan juga meningkat, dan sejumlah besar thread digunakan. Akibatnya, thread di thread pool layanan mungkin habis dan layanan menjadi tidak tersedia.
Arsitektur mikro modern bersifat terdistribusi dan terdiri dari beberapa layanan mikro. Layanan mikro yang berbeda saling memanggil, membuat proses panggilan menjadi kompleks. Masalah yang disebutkan di atas memiliki dampak besar pada panggilan layanan. Dalam proses panggilan yang kompleks, jika satu node tidak stabil, node lainnya juga dapat menjadi tidak stabil. Akibatnya, seluruh panggilan menjadi tidak tersedia.
Deskripsi Aturan
MSE menyediakan kemampuan untuk mengontrol jumlah thread konkuren dari antarmuka atau dependensi guna menghindari ketidaktersediaan layanan yang disebabkan oleh faktor tidak stabil seperti panggilan lambat.
Kontrol konkurensi digunakan sebagai metode isolasi ringan untuk mengontrol jumlah thread konkuren untuk panggilan tertentu. Ini membantu mencegah sejumlah besar panggilan lambat merebut sumber daya dari panggilan normal. Untuk informasi lebih lanjut, lihat Buat Aturan Isolasi.
Aturan perlindungan parameter hotspot
Skema
Untuk mencegah kerusakan sistem yang disebabkan oleh beban trafik berlebih, Anda dapat mengonfigurasi aturan pembatasan untuk antarmuka inti dalam banyak kasus. Namun, dalam beberapa skenario, aturan pembatasan umum tidak dapat menyelesaikan masalah.
Misalnya, selama jam sibuk kegiatan promosi berskala besar, tampilan halaman instan produk panas tinggi. Dalam hal ini, Anda dapat memprediksi produk panas terlebih dahulu dan melakukan pra-pemuatan cache untuk informasi tentang produk panas. Dengan cara ini, Anda dapat memperoleh informasi produk dengan cepat tanpa kueri database saat tampilan halaman produk tinggi. Namun, beberapa produk yang tidak dikenal mungkin menjadi populer selama kegiatan promosi berskala besar. Anda tidak dapat memprediksi jenis produk ini, dan informasi produk tidak dipra-muat. Saat tampilan halaman produk ini meningkat, sejumlah besar permintaan dikirim ke cache, yang menyebabkan kegagalan cache. Akibatnya, akses database memakan waktu. Sumber daya di kolam sumber daya permintaan produk normal dikonsumsi oleh permintaan abnormal. Akibatnya, terjadi kerusakan sistem.
Deskripsi Aturan
Untuk mengatasi masalah ini, Anda dapat mengonfigurasi aturan perlindungan parameter hotspot. Aturan ini memungkinkan sistem secara otomatis mengidentifikasi parameter hotspot dan mengontrol frekuensi akses atau konkurensi setiap nilai hotspot berdasarkan kontrol akses pada parameter hotspot di MSE. Aturan perlindungan parameter hotspot dapat secara efektif mencegah permintaan berlebihan untuk mengakses parameter panas merebut sumber daya yang dialokasikan untuk panggilan normal. Untuk informasi lebih lanjut, lihat Buat Aturan Pembatasan Parameter Panas untuk Permintaan RPC dan Buat Aturan Pembatasan Parameter Panas untuk Permintaan HTTP.