Fitur ketersediaan tinggi MSE Microservices Registry membantu Anda membangun aplikasi yang lebih tangguh. Praktik terbaik ini dikategorikan berdasarkan cakupan: ketersediaan tinggi instans, ketersediaan tinggi penemuan layanan, dan ketersediaan tinggi manajemen konfigurasi. Topik ini menggunakan Edisi Profesional MSE Microservices Registry sebagai contoh.
Versi yang direkomendasikan
spring-cloud-alibaba: 2.2.6.RELEASE atau versi yang lebih baru.Dubbo: 2.7.12 atau versi yang lebih baru.spring-boot: 2.3.x atau versi sebelumnya. Kami tidak merekomendasikan penggunaan versi 2.4.x karena masalah kompatibilitas.
Ketersediaan tinggi untuk instans Microservices Registry
High-availability architecture
Tidak ada layanan yang tersedia 100%. Untuk keandalan dan keamanan data yang tinggi, terapkan instans Anda dengan minimal tiga node. Jika suatu node gagal, lalu lintas dialihkan ke node lain dalam hitungan detik, dan node yang bermasalah secara otomatis dihapus dari kluster.
Edisi Profesional Microservices Registry dibangun di atas arsitektur Nacos 2.0. Desain ini meningkatkan kemampuan pemulihan bencana dan mengurangi ketergantungan pada infrastruktur dasar untuk ketersediaan tinggi. Untuk informasi selengkapnya, lihat Pemilihan edisi instans.
Multi-zone deployment
Setiap wilayah MSE mencakup beberapa zona. Aplikasi di zona berbeda dalam satu wilayah yang sama mengalami latensi jaringan rendah (di bawah 3 ms) sekaligus mendapatkan manfaat dari isolasi kesalahan. Instans multi-zona menempatkan server fisik di berbagai zona. Jika terjadi kegagalan di Zona A, lalu lintas segera dialihkan ke Zona B. Proses ini berjalan mulus dan tidak memerlukan perubahan pada kode aplikasi Anda. Cukup atur jumlah node, dan MSE secara otomatis menangani penerapan di beberapa zona.
Gambar 1. Arsitektur aktif-aktif tiga node MSE

Gambar 2. Arsitektur pemulihan bencana bertingkat

Ketersediaan tinggi penemuan layanan
Dalam penemuan layanan, consumers dan providers memiliki fitur ketersediaan tinggi yang berbeda: consumers menyediakan Push-through protection, sedangkan providers mendukung disaster recovery.
Konsumen
Konsumen berlangganan daftar instans penyedia dari registri. Ketika registri mengalami perubahan—seperti scaling atau peningkatan—atau menghadapi kejadian tak terduga seperti gangguan jaringan lintas zona atau pemadaman listrik, langganan dapat gagal dan berdampak pada ketersediaan konsumen.
Konfigurasikan perlindungan daftar kosong di sisi konsumen untuk mencegah penerimaan daftar instans kosong selama gangguan.
Tanpa perlindungan daftar kosong: Jika konsumen menerima daftar kosong, layanan Anda terganggu dan melaporkan error.
Dengan perlindungan daftar kosong: Jika konsumen menerima daftar kosong, mekanisme perlindungan diaktifkan, membuang pembaruan tersebut, dan membantu menjaga ketersediaan layanan.
Configuration
Fitur ini hanya didukung di nacos-java-client versi 1.4.1 dan lebih baru. Untuk versi Spring Cloud dan Dubbo yang kompatibel, lihat Versi yang direkomendasikan.
Aplikasi Spring Cloud
Tambahkan properti berikut ke konfigurasi Anda:
spring.cloud.nacos.discovery.namingPushEmptyProtection=trueAplikasi Dubbo
Tambahkan parameter berikut ke registry.url:
namingPushEmptyProtection=true
Persistent caching
Saat perlindungan daftar kosong diaktifkan, direktori cache dapat hilang jika kontainer aplikasi direstart. Untuk mencegah hal ini, buat direktori cache menjadi persisten, misalnya dengan memasang volume.
Direktori cache terletak di: ${user.home}/nacos/naming/${namespaceId}.
Penyedia
Fitur pemulihan bencana untuk penyedia membantu mencegah kegagalan berantai di kluster Anda saat terjadi lonjakan lalu lintas.
Penyedia yang terdaftar menggunakan nacos-java-client versi 2.x tidak mendukung fitur pemulihan bencana di sisi penyedia.
Without disaster recovery
Saat lonjakan permintaan konsumen mendorong penyedia ke tingkat utilisasi tinggi, beberapa di antaranya mungkin gagal:

Registri menghapus node yang gagal dan mengalihkan seluruh lalu lintasnya ke node yang tersisa.
Beban pada node penyedia yang tersisa meningkat, sehingga lebih rentan gagal juga.
Pada akhirnya, semua node penyedia dapat gagal, menyebabkan gangguan layanan total.
With disaster recovery
Saat lonjakan permintaan konsumen mendorong penyedia ke tingkat utilisasi tinggi, beberapa di antaranya mungkin gagal:

Registri menandai node yang gagal sebagai tidak sehat.
Jika persentase node tidak sehat melebihi ambang batas perlindungan, pemulihan bencana diaktifkan. Registri kemudian mengembalikan semua node terdaftar (baik sehat maupun tidak sehat) kepada konsumen.
Strategi ini mencegah gangguan layanan total dengan mendistribusikan lalu lintas ke semua node terdaftar, meskipun beberapa di antaranya tidak sehat.
Enable disaster recovery
Supported instance types
Instans persisten: Didukung sepenuhnya.
Instans non-persisten:
nacos-java-client1.x: Secara default, instans tidak sehat dihapus setelah 30 detik. Instans yang dihapus tidak dihitung terhadap ambang batas perlindungan, sehingga kebijakan pemulihan bencana tidak diaktifkan.nacos-java-client2.x: Tidak didukung. Instans langsung di-offline setelah koneksi persisten terputus, sehingga kebijakan pemulihan bencana tidak dapat dipicu.
Configure by using the command line
Perbarui ambang batas untuk layanan tertentu
curl -X PUT "${nacos.address}/nacos/v1/ns/service?namespaceId=public&serviceName=my-provider&protectThreshold=0.6"${nacos.address}: Alamat Microservices Registry.namespaceId: ID namespace. Nilai default: public.serviceName: Nama layanan untuk aplikasi Spring Cloud atau nama antarmuka untuk aplikasi Dubbo.
Kueri konfigurasi ambang batas
curl -X GET "${nacos.address}/nacos/v1/ns/service?namespaceId=public&serviceName=my-provider"Respons
{"namespaceId":"public","groupName":"DEFAULT_GROUP","name":"my-provider","protectThreshold":0.7,"metadata":{},"selector":{"type":"none"},"clusters":[]}
Microservices Governance high availability configuration
Tingkatkan ketersediaan aplikasi lebih lanjut dengan menggunakan fitur Microservices Governance seperti startup dan shutdown mulus, penghapusan instans outlier, serta penurunan layanan.
Ketersediaan tinggi manajemen konfigurasi
Ketersediaan tinggi manajemen konfigurasi bergantung pada dua aspek utama: cache dan direktori cadangan di sisi klien, serta kemampuan throttling bertingkat dari pusat konfigurasi.
Kemampuan ketersediaan tinggi berikut untuk manajemen konfigurasi diaktifkan secara default di Edisi Profesional Microservices Registry. Tidak diperlukan tindakan tambahan.

Client
Cache directory: Setiap kali klien mengambil data dari pusat konfigurasi, klien menyimpan konfigurasi terbaru ke direktori cache lokal. Jika server tidak tersedia, klien kembali menggunakan cache lokal ini.
Backup directory: Jika server tidak tersedia, Anda dapat memperbarui file secara manual di direktori cadangan lokal. Klien memberi prioritas pemuatan dari direktori ini, mensimulasikan pembaruan konfigurasi yang didorong oleh server.
Configuration Center
Selain ketersediaan tinggi di tingkat infrastruktur, layanan pusat konfigurasi menerapkan pembatasan laju multidimensi untuk meningkatkan stabilitas. Ini mencakup batas jumlah koneksi maksimum per node dan koneksi per IP klien. Layanan ini juga mencakup pembatasan laju publikasi konfigurasi per detik dan per menit, serta menyediakan throttling detail halus untuk konfigurasi individual. Langkah-langkah ini membantu mengurangi risiko downtime server akibat lalu lintas abnormal.