Topik ini menjelaskan cara menyelesaikan masalah ketika bobot dari instance aplikasi tidak diterapkan pada instance Microservices Engine (MSE) Nacos setelah dimodifikasi.
Deskripsi masalah
Ketika sebuah instance aplikasi ditambahkan atau dimodifikasi di konsol MSE, bobot dari instance tersebut dikonfigurasikan untuk keperluan load balancing. Namun, saat lalu lintas dipanggil, distribusi lalu lintas tidak mengikuti bobot yang telah dimodifikasi.
Penyebab yang mungkin
Kerangka aplikasi yang digunakan tidak mendukung load balancing berbasis bobot.
Load balancing diimplementasikan berdasarkan konfigurasi kerangka aplikasi, bukan properti bobot dari instance MSE Nacos.
Penanganan alamat aplikasi tidak mempertimbangkan nilai bobot.
Solusi
Bobot dari instance aplikasi merupakan properti dari instance MSE Nacos. Setelah Anda mengubah nilai bobot, informasi instance termasuk nilai bobot akan didorong ke klien Nacos. Namun, dalam praktiknya, properti bobot mungkin diabaikan tergantung pada metode penggunaannya.
Kerangka aplikasi yang digunakan tidak mendukung distribusi lalu lintas berbasis bobot. Sebagai contoh, kerangka seperti
Spring Cloud Alibabahanya mengenali nilai bobot sebagai nol dan bukan nol. Jika nilai bobot adalah nol, tidak ada lalu lintas yang didistribusikan. Jika nilai bobot bukan nol, lalu lintas tetap didistribusikan tanpa mempertimbangkan nilai bobot. Untuk menyelesaikan masalah ini, gunakan salah satu metode berikut:Periksa apakah distribusi lalu lintas berbasis bobot dapat diterapkan pada kerangka aplikasi. Jika dapat diterapkan, implementasikan fitur ini.
Ganti kerangka aplikasi yang ada dengan kerangka lain yang mendukung load balancing berbasis bobot.
Kerangka aplikasi memiliki metode konfigurasi load balancing sendiri, sehingga properti bobot dari instance MSE Nacos tidak digunakan. Properti bobot mencakup
DubbodanSpring Cloud Alibaba + Loadbalance.Anda dapat meminta bantuan dari komunitas sumber terbuka atau merujuk pada dokumentasi untuk mengonfigurasi load balancing.
Kerangka aplikasi mungkin tidak digunakan dalam pengembangan aplikasi, tetapi aplikasi tidak menggunakan nilai bobot untuk penanganan alamat saat memproses layanan.
Setelah daftar instance aplikasi diperoleh, aktifkan aplikasi untuk mengimplementasikan logika penanganan alamat kustom berdasarkan bidang
weight.Gunakan metode default
selectOneHealthyInstancedari klien Nacos untuk penanganan alamat. Untuk informasi lebih lanjut, lihat Nacos Java SDK.