全部产品
Search
文档中心

Microservices Engine:Implementasi kemampuan ketersediaan tinggi dari MSE Microservices Registry

更新时间:Jun 28, 2025

Anda dapat menggunakan kemampuan ketersediaan tinggi yang disediakan oleh Microservices Registry dari Microservices Engine (MSE) untuk meningkatkan signifikan kemampuan penanganan risiko aplikasi. Topik ini menjelaskan cara mengimplementasikan kemampuan ketersediaan tinggi untuk instance, penemuan layanan, dan manajemen konfigurasi Microservices Registry dalam ruang lingkup implementasi. Edisi Profesional Microservices Registry dari MSE digunakan dalam contoh ini.

Versi yang Direkomendasikan

  • spring-cloud-alibaba: 2.2.6.RELEASE atau lebih baru.

  • dubbo: 2.7.12 atau lebih baru.

  • spring-boot: 2.3.x atau lebih lama. Disarankan untuk tidak menggunakan versi 2.4.x karena memiliki masalah kompatibilitas.

Ketersediaan Tinggi Registri MSE

  • High-availability architecture

    Aplikasi tidak selalu berjalan tanpa downtime. Jika aplikasi Anda memerlukan keandalan dan keamanan data yang lebih baik, disarankan untuk menerapkan setidaknya tiga node untuk instance Anda. Jika salah satu node down, beban kerja akan dialihkan ke node lain dalam beberapa detik. Node yang tidak sehat dihapus secara otomatis dari instance.

    Edisi Profesional Microservices Registry dikembangkan berdasarkan Nacos 2.0. Arsitektur Nacos 2.0 memastikan ketersediaan tinggi instance MSE dengan sumber daya infrastruktur yang lebih sedikit, serta meningkatkan kemampuan pemulihan bencana instance MSE. Untuk informasi lebih lanjut, lihat Pilih jenis instance dan edisi instance.

  • Multi-zone deployment

    Setiap wilayah terdiri dari beberapa zona. Aplikasi yang diterapkan di zona berbeda dalam wilayah yang sama dapat berkomunikasi dengan latensi kurang dari 3 milidetik. Penyebaran multi-zona juga memungkinkan isolasi kesalahan. Misalnya, Anda dapat menerapkan instance di beberapa server fisik yang berada di zona berbeda. Jika server fisik di Zona A down, beban kerja akan dialihkan ke server fisik di zona lain dalam waktu singkat. Proses failover transparan bagi pengguna dan tidak memerlukan perubahan pada aplikasi. Setelah Anda mengonfigurasi beberapa node untuk penyebaran multi-zona, MSE secara otomatis menerapkan instance Anda di seluruh zona.

    Gambar 1. Arsitektur redundansi zona aktif-aktif berbasis tiga node

    Gambar 2. Arsitektur pemulihan bencana bertingkat

Ketersediaan Tinggi Penemuan Layanan

Penemuan layanan melibatkan consumers dan providers. Consumers menyediakan fitur empty list protection, sedangkan providers menyediakan fitur disaster recovery.

Konsumen

Konsumen berlangganan daftar instance yang disediakan oleh penyedia dalam registri layanan. Aplikasi tidak selalu berjalan tanpa downtime. Ketika registri layanan memperbarui konfigurasi, melakukan upgrade atau downgrade, atau mengalami pengecualian seperti pemutusan jaringan atau pemadaman listrik, langganan konsumen mungkin terpengaruh, sehingga memengaruhi ketersediaannya.

Untuk menangani kesalahan langganan yang disebabkan oleh pengecualian, Anda dapat mengaktifkan fitur perlindungan daftar kosong untuk konsumen.

  • Jika Anda menonaktifkan perlindungan daftar kosong, bisnis Anda terganggu dan kesalahan dikembalikan ketika konsumen berlangganan daftar instance kosong.

  • Jika Anda mengaktifkan perlindungan daftar kosong, langganan konsumen ke daftar instance kosong diabaikan, memastikan ketersediaan tinggi bisnis Anda.

Enable empty list protection

Catatan

Hanya nacos-java-client 1.4.1 dan versi lebih baru yang mendukung perlindungan daftar kosong. Untuk informasi lebih lanjut tentang versi Spring Cloud dan Dubbo yang mendukung perlindungan daftar kosong, lihat Versi yang Direkomendasikan.

  • Aplikasi Spring Cloud

    Tambahkan pengaturan berikut ke konfigurasi aplikasi Spring Cloud:

    spring.cloud.nacos.discovery.namingPushEmptyProtection=true
  • Aplikasi Dubbo

    Tambahkan parameter berikut ke registry.url:

    namingPushEmptyProtection=true

Persistent caching

Setelah mengaktifkan perlindungan daftar kosong di klien, Anda dapat menerapkan aplikasi Anda di pod. Namun, data aplikasi yang disimpan di direktori cache mungkin hilang setelah pod di-restart. Untuk menyelesaikan masalah ini, Anda dapat menggunakan volume untuk memasang direktori cache ke pod untuk penyimpanan persisten.

Direktori cache adalah ${user.home}/nacos/naming/${namespaceId}.

Penyedia

Penyedia menyediakan fitur pemulihan bencana untuk mencegah gangguan layanan akibat lonjakan lalu lintas.

Catatan

Penyedia yang didaftarkan menggunakan nacos-java-client versi 2.x tidak mendukung fitur pemulihan bencana.

  • When disaster recovery is disabled

    Jika jumlah permintaan dari konsumen melonjak, beberapa node penyedia mungkin kelebihan beban dan tidak dapat memberikan layanan.

    1. Registri layanan menghapus node yang tidak sehat dan mendistribusikan permintaan ke node yang sehat.

    2. Node yang sehat juga mungkin kelebihan beban dan gagal.

    3. Akibatnya, semua node penyedia down dan bisnis Anda terganggu.

  • Disaster recovery enabled

    Jika jumlah permintaan dari konsumen melonjak, beberapa node penyedia mungkin kelebihan beban dan tidak dapat memberikan layanan.

    1. Registri layanan menghapus node yang tidak sehat dan mendistribusikan permintaan ke node yang sehat.

    2. Jika jumlah node yang tidak sehat mencapai ambang batas pemulihan bencana, permintaan didistribusikan secara merata ke semua node yang sehat.

    3. Setengah dari node dapat memberikan layanan.

Enable disaster recovery

  • Supported instance types

    • Instance yang menggunakan penyimpanan persisten: Pemulihan bencana didukung.

    • Instance yang tidak menggunakan penyimpanan persisten:

      • nacos-java-client 1.x: Secara default, node yang tidak sehat dihapus pada interval 30 detik. Node yang tidak sehat yang dihapus tidak diperhitungkan ketika sistem mencocokkan jumlah node yang tidak sehat dengan ambang batas pemulihan bencana. Akibatnya, fitur pemulihan bencana gagal bekerja sesuai harapan.

      • nacos-java-client 2.x: Pemulihan bencana tidak didukung. Setelah koneksi persisten ke node terputus, sistem segera menghapus node tersebut. Akibatnya, fitur pemulihan bencana tidak bekerja sesuai harapan.

  • Enable disaster recovery by using the CLI

    • Tentukan ambang batas pemulihan bencana untuk layanan tertentu

      curl -X PUT "${nacos.address}/nacos/v1/ns/service?namespaceId=public&serviceName=my-provider&protectThreshold=0.6"
      • ${nacos.address}: titik akhir registri layanan.

      • namespaceId: ID namespace. Nilai default: public.

      • serviceName: nama aplikasi Spring Cloud atau nama API aplikasi Dubbo.

    • Kueri ambang batas pemulihan bencana

      curl -X GET "${nacos.address}/nacos/v1/ns/service?namespaceId=public&serviceName=my-provider"
    • Hasil yang dikembalikan

      {"namespaceId":"public","groupName":"DEFAULT_GROUP","name":"my-provider","protectThreshold":0.7,"metadata":{},"selector":{"type":"none"},"clusters":[]}

High availability of Microservices Governance

Tata Kelola Mikrolayanan memungkinkan Anda mengimplementasikan berbagai fitur, seperti memulai atau menutup aplikasi dengan anggun, menghapus instance outlier, dan mengonfigurasi penurunan layanan. Tata Kelola Mikrolayanan juga membantu meningkatkan ketersediaan tinggi aplikasi Anda.

Ketersediaan Tinggi Manajemen Konfigurasi

Kemampuan ketersediaan tinggi manajemen konfigurasi terletak pada direktori cache dan direktori cadangan klien manajemen konfigurasi serta kemampuan throttling multidimensi registri.

Catatan

Secara default, ketersediaan tinggi yang disediakan oleh fitur manajemen konfigurasi diaktifkan di Edisi Profesional Microservices Registry.

  • Client

    • Cache directory: Setiap kali klien bertukar data dengan pusat konfigurasi, klien menyimpan konfigurasi terbaru di direktori cache lokal. Jika server tidak tersedia, konfigurasi yang disimpan di direktori cache lokal digunakan.

    • Backup directory: Jika server tidak tersedia, Anda dapat memperbarui konfigurasi yang disimpan di direktori cadangan secara manual. Kemudian, klien menarik konfigurasi dari direktori cadangan.

  • Configuration center

    Pusat konfigurasi mengelola dan memelihara sumber daya dasar, serta membatasi lalu lintas ke aplikasi berdasarkan beberapa metrik, yang membantu meningkatkan ketersediaan aplikasi. Metrik ini termasuk jumlah maksimum koneksi per node dan jumlah maksimum koneksi per alamat IP klien. Pusat konfigurasi memungkinkan Anda membatasi jumlah kali set konfigurasi dapat dipublikasikan per detik atau per menit, atau membatasi transfer data per detik atau per menit untuk mempublikasikan set konfigurasi tertentu. Ini mengurangi risiko kegagalan server ketika terjadi lonjakan lalu lintas.