All Products
Search
Document Center

Microservices Engine:Ketersediaan tinggi untuk MSE Microservices Registry

Last Updated:May 15, 2026

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 MSEMSE三节点同城双活架构图

    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

Catatan

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=true
  • Aplikasi 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.

Catatan

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:无容灾保护

    1. Registri menghapus node yang gagal dan mengalihkan seluruh lalu lintasnya ke node yang tersisa.

    2. Beban pada node penyedia yang tersisa meningkat, sehingga lebih rentan gagal juga.

    3. 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:开启容灾保护

    1. Registri menandai node yang gagal sebagai tidak sehat.

    2. 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.

    3. 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-client 1.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-client 2.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.

Catatan

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.