Setelah membuat aturan pembatasan parameter panas untuk aplikasi, Microservices Engine (MSE) menganalisis dan mengumpulkan statistik tentang parameter panas yang paling sering diakses selama pemanggilan sumber daya. MSE juga membatasi pemanggilan sumber daya yang melibatkan parameter panas untuk memastikan stabilitas sistem. Topik ini menjelaskan cara membuat aturan tersebut.
Informasi latar belakang
Data panas adalah data yang sering diakses. Dalam beberapa skenario, Anda perlu mengumpulkan statistik tentang data yang paling sering diakses dan melakukan kontrol akses terhadap data tersebut, seperti:
Batasi akses ke ID produk yang paling sering dibeli dalam periode tertentu untuk mencegah lonjakan permintaan ke database akibat kerusakan cache.
Batasi akses dari ID pengguna yang sering mengirim permintaan dalam periode tertentu untuk mencegah spamming.
MSE menggunakan kebijakan least recently used (LRU) untuk mengumpulkan statistik tentang parameter panas yang paling sering diakses. Pembatasan dilakukan berdasarkan algoritma token bucket.
Prosedur
Masuk ke Konsol MSE, lalu pilih wilayah di bilah navigasi atas.
Di panel navigasi kiri, pilih Microservices Governance > Application Governance.
Di halaman Application list, klik kartu sumber daya aplikasi yang diinginkan.
Pilih salah satu metode berikut untuk membuat aturan pembatasan parameter panas untuk antarmuka RPC atau antarmuka kustom.
Metode 1: Buat aturan di halaman Detail API
Antarmuka RPC: Di panel navigasi kiri, klik API Details. Kemudian, klik tab RPC service. Pilih antarmuka, klik tab Hotspot Parameter Protection (RPC) di panel kanan, lalu klik Add Hotspot Parameter Protection (RPC) Rule.
Antarmuka Kustom: Di panel navigasi kiri, klik API Details. Kemudian, klik tab Custom Interface. Pilih antarmuka, klik tab Perlindungan Parameter Panas di panel kanan, lalu klik Add Hot Parameter Protection (Custom Interface) Rule.
Metode 2: Buat aturan di tab Perlindungan Aliran
Di panel navigasi kiri, klik Traffic management. Di halaman Traffic management, klik tab Flow protection, klik subtab Perlindungan Parameter Panas (RPC/Antarmuka Kustom), lalu klik Add Hot Parameter Protection (RPC/Custom Interface).
Di kotak dialog yang muncul, konfigurasikan parameter, lalu klik New.
Untuk informasi lebih lanjut tentang parameter, lihat bagian Parameter dari topik ini.
Skenario 1: Penjualan kilat produk panas
Dalam skenario penjualan kilat, sistem mungkin gagal merespons segera atau bahkan berhenti merespons karena lonjakan trafik. Untuk memastikan stabilitas sistem, Anda dapat membuat aturan pembatasan parameter panas. Jika ambang batas terlampaui, sistem akan menempatkan permintaan berlebih untuk membeli produk panas dalam antrian.
Sebagai contoh, jika jumlah permintaan untuk membeli produk melebihi 100 dalam 1 detik, sistem akan memproses 100 permintaan per detik dan menempatkan permintaan berlebih dalam antrian. Untuk membuat aturan pembatasan parameter panas untuk permintaan panggilan prosedur jarak jauh (RPC), konfigurasikan informasi berikut di kotak dialog Add Hot Parameter Protection (RPC/Custom Interface):
Tentukan nilai untuk parameter Interface name.
Atur parameter Parameter position Index ke indeks parameter panas yang ditentukan selama pelacakan. Indeks dimulai dari 0 dan sesuai dengan indeks dalam daftar parameter metode RPC atau metode pelacakan kustom.
Sebagai contoh, untuk metode RPC
com.aliyun.demo:methodA(param0, param1, ……), indeks 0 sesuai dengan param0. Untuk metode pelacakan kustomSphU.entry("demoResource",EntryType.IN, 1, param0, param1, ……), indeks 0 sesuai dengan param0.Atur parameter Statistical dimension ke Number of requests.
Atur parameter Statistical cycle time ke 1 dalam satuan detik dan parameter Single machine threshold ke 100.
Atur parameter Flow control effect ke Waiting in line.
Atur parameter Timeout menjadi 30. Satuan: milidetik.
Setelah aturan dibuat, jika operasi API ini dipanggil lebih dari 100 kali dalam 1 detik, permintaan berlebih akan diantrikan. Jika permintaan diantrikan selama lebih dari 30 milidetik, permintaan tersebut langsung gagal.
Skenario 2: Permintaan sering yang menghabiskan banyak sumber daya sistem
Dalam skenario penjualan kilat, pelanggan mungkin perlu memodifikasi alamat pengiriman pesanan. Jika sejumlah besar permintaan untuk memodifikasi alamat dikirim ke sistem, banyak sumber daya digunakan untuk menulis data ke database. Dalam kasus ini, Anda dapat membuat permintaan berlebih yang melibatkan parameter panas langsung gagal. Untuk membuat aturan pembatasan parameter panas untuk permintaan RPC, konfigurasikan informasi berikut di kotak dialog Add Hot Parameter Protection (RPC/Custom Interface):
Tentukan nilai untuk parameter Interface name.
Atur parameter Parameter position Index ke indeks parameter panas yang ditentukan selama pelacakan. Indeks dimulai dari 0 dan sesuai dengan indeks dalam daftar parameter metode RPC atau metode pelacakan kustom.
Sebagai contoh, untuk metode RPC
com.aliyun.demo:methodA(param0, param1, ……), indeks 0 sesuai dengan param0. Untuk metode pelacakan kustomSphU.entry("demoResource",EntryType.IN, 1, param0, param1, ……), indeks 0 sesuai dengan param0.Atur parameter Statistical dimension ke Concurrent number.
Atur parameter Statistical cycle time ke 1 dalam satuan detik dan parameter Single machine threshold ke 100.
Atur parameter Flow control effect ke Fast failure.
Setelah aturan dibuat, sistem dapat memproses hingga 100 permintaan per detik. Permintaan berlebih langsung gagal.
Parameter
Tabel berikut menjelaskan parameter yang dapat Anda konfigurasikan di kotak dialog Add Hot Parameter Protection (RPC/Custom Interface).
Parameter | Deskripsi |
Interface name | Nama antarmuka tempat Anda ingin menerapkan aturan. Nama tersebut harus sama dengan nama sumber daya yang ditentukan selama pelacakan. |
Parameter position Index | Indeks parameter panas yang ditentukan selama pelacakan. Indeks dimulai dari 0 dan sesuai dengan indeks dalam daftar parameter metode RPC atau metode pelacakan kustom. Sebagai contoh, untuk metode RPC |
Statistical dimension | Dimensi berdasarkan mana statistik permintaan dikumpulkan. Nilai valid:
|
Statistical cycle time | Periode statistik. Satuan: detik. Sebagai contoh, jika periode statistik adalah 10 detik dan ambang batas permintaan per detik (QPS) adalah 5, setiap parameter panas dapat diakses paling banyak lima kali dalam 10 detik. |
Single machine threshold | Ambang batas QPS untuk setiap parameter panas. |
Flow control effect | Mode di mana permintaan yang diblokir diproses. Anda dapat mengonfigurasi parameter ini jika Anda mengatur parameter Statistical dimension ke Number of requests. Nilai valid:
|