Microservices Engine (MSE) Nacos menyediakan registrasi layanan, penemuan layanan, dan manajemen konfigurasi melalui SDK untuk berbagai bahasa. Gunakan panduan ini untuk memilih SDK yang sesuai dengan tumpukan teknologi Anda dan menghindari versi SDK yang diketahui memiliki masalah stabilitas.
Versi SDK minimum yang direkomendasikan
Untuk stabilitas dan kompatibilitas, gunakan setidaknya versi berikut:
| SDK | Versi minimum yang direkomendasikan |
|---|---|
| Java (Nacos Client) | 2.3.2 atau lebih baru |
| Go (nacos-sdk-go) | 2.3.3 atau lebih baru (Edisi Profesional), 1.1.6 atau lebih baru (Edisi Dasar) |
| Python (nacos-sdk-python) | 2.0.7 atau lebih baru |
| Dubbo | 2.7.20 atau lebih baru (2.x), 3.1.6 atau lebih baru (3.x) |
| Spring Cloud Alibaba | 2.2.6.RELEASE atau lebih baru |
Untuk detail versi tertentu yang harus dihindari, lihat bagian Versi SDK yang Dibatasi di bawah.
Pilih SDK sesuai tumpukan teknologi Anda
Java
| Integrasi | Deskripsi | Referensi |
|---|---|---|
| Native SDK | Hubungkan langsung melalui Nacos Java SDK. | Java SDK |
| Spring Boot | Gunakan Nacos sebagai service registry dan pusat konfigurasi dalam Spring Boot. | Nacos with Spring Boot |
| Spring Cloud | Integrasikan Nacos dengan Spring Cloud untuk manajemen konfigurasi. | Nacos with Spring Cloud |
| Dubbo | Daftarkan layanan Dubbo ke Nacos untuk remote procedure call (RPC) berkinerja tinggi. | Dubbo on MSE |
Go
| Integrasi | Deskripsi | Referensi |
|---|---|---|
| Native SDK | Siapkan service registry dan pusat konfigurasi dengan Go SDK. | nacos-sdk-go |
| Dubbo-Go | Bangun layanan RPC di Go dengan Apache Dubbo-Go dan Nacos. | Dubbo-Go |
| Kitex | Gunakan Kitex, sebuah framework RPC untuk layanan mikro Go dengan dukungan bawaan service registry Nacos. | - |
Node.js
| Integrasi | Deskripsi | Referensi |
|---|---|---|
| Native SDK | Implementasikan registrasi dan penemuan layanan dengan Node.js SDK. | nacos-sdk-nodejs |
Python
| Integrasi | Deskripsi | Referensi |
|---|---|---|
| Native SDK | Bangun sistem layanan mikro dengan Python SDK. | nacos-sdk-python |
Service mesh (Istio)
MSE Nacos terintegrasi dengan ekosistem service mesh Istio melalui standar Mesh Configuration Protocol (MCP). Untuk menghubungkan Nacos dengan service mesh, lihat Create a service source.
Versi SDK yang dibatasi
Beberapa versi SDK memiliki bug yang diketahui dapat menyebabkan gangguan layanan, degradasi kinerja, atau masalah data. Hindari versi yang tercantum di bawah ini dan lakukan upgrade ke alternatif yang direkomendasikan.
Java SDK (Nacos Client)
| Versi yang Dibatasi | Masalah | Aksi |
|---|---|---|
| 0.x - 1.1.x | Tidak mendukung heartbeat layanan ringan. Paket heartbeat berukuran besar menurunkan kinerja. Detail. | Lakukan upgrade ke 1.2.0 atau lebih baru. |
| 1.4.0 dan sebelumnya | Pada versi 1.4.0 dan sebelumnya, ketika terjadi loss paket jaringan atau error tak terduga lainnya, thread heartbeat keluar secara tidak terduga. Layanan menjadi offline dan tidak dapat pulih secara otomatis. Detail. | Lakukan upgrade ke 1.4.3 atau lebih baru. |
| 1.4.1 - 1.4.2 | 1.4.1: Jika DNS tidak tersedia dan resolusi nama domain gagal, thread heartbeat keluar secara tidak terduga. Layanan menjadi offline dan tidak dapat pulih secara otomatis. Detail. 1.4.2: API getConfigAndSignListener mengembalikan konten teks biasa saat melakukan kueri terhadap konfigurasi terenkripsi. |
Lakukan upgrade ke 1.4.3 atau lebih baru. |
| 2.0.0 - 2.0.1 | Tidak dapat membawa informasi identitas RAM. Setelah Anda mengaktifkan autentikasi client pada engine, client tidak dapat memperoleh konfigurasi, mendaftarkan layanan, atau menemukan layanan, meskipun informasi yang diperlukan telah dikonfigurasi. | Lakukan upgrade ke 2.0.2 atau lebih baru. |
| 2.2.0 - 2.2.1 | Saat deployment melalui EDAS atau SAE, parameter JVM -Dnacos.use.endpoint.parsing.rule=false dan -Dnacos.use.cloud.namespace.parsing=false tidak berlaku. Hal ini mencegah aplikasi terhubung ke kluster MSE Nacos. |
Lakukan upgrade ke 2.2.2 atau lebih baru. |
| 2.3.1 | Server mendorong pembaruan konfigurasi berulang kali meskipun konfigurasi belum berubah. Hal ini menyebabkan overhead CPU dan jaringan yang tidak perlu serta dapat memengaruhi stabilitas. Detail. | Lakukan upgrade ke 2.3.2 atau lebih baru. |
Go SDK (nacos-sdk-go)
| Versi yang Dibatasi | Masalah | Aksi |
|---|---|---|
| 1.0.1 - 1.1.3 | Client selalu melaporkan versinya sebagai 1.0.1, sehingga mencegah identifikasi versi yang akurat. Dua bug kritis dapat menyebabkan notifikasi perubahan yang sering atau gangguan heartbeat. | Edisi Dasar: lakukan upgrade ke 1.1.6 atau lebih baru. Edisi Profesional: lakukan upgrade ke 2.3.2 atau lebih baru. |
| 1.1.4 | Jika konfigurasi yang berlangganan dihapus, client terus-menerus melakukan kueri terhadap layanan yang tidak ada. Banjir permintaan kueri konfigurasi yang dihasilkan dapat memicu pembatasan laju dan memengaruhi aplikasi lain. Detail. | Lakukan upgrade ke versi setelah 1.1.4. Untuk versi minimum yang direkomendasikan, lihat tabel Versi SDK Minimum yang Direkomendasikan di atas. |
| 2.0.0 - 2.1.0 | Client selalu melaporkan versinya sebagai 2.0.0, sehingga mencegah identifikasi versi yang akurat. Setelah koneksi ulang, instans tidak mendaftar ulang atau berlangganan ulang ke layanan secara otomatis. Layanan menjadi offline dan tidak dapat pulih. Detail. | Lakukan upgrade ke 2.3.3 atau lebih baru. |
| 2.2.7 - 2.3.1 | Client selalu melaporkan versinya sebagai 2.2.7, sehingga mencegah identifikasi versi yang akurat. Dua bug kritis dapat menyebabkan kegagalan menerima notifikasi perubahan layanan atau kehilangan layanan setelah gangguan koneksi. | Lakukan upgrade ke 2.3.3 atau lebih baru. |
Python SDK (nacos-sdk-python)
| Versi yang Dibatasi | Masalah | Aksi |
|---|---|---|
| 2.0.0 - 2.0.6 | Setelah koneksi ulang, client tidak mendaftar ulang atau berlangganan ulang ke layanan dan konfigurasi secara otomatis. Hal ini menyebabkan gangguan layanan tanpa pemulihan otomatis. | Lakukan upgrade ke 2.0.7 atau lebih baru. |
Dubbo
| Versi yang Dibatasi | Masalah | Tindakan |
|---|---|---|
| 2.7.5 dan sebelumnya | Saat berlangganan ke beberapa layanan, perubahan daftar alamat penyedia tidak diambil. Trafik dapat diarahkan ke penyedia yang offline atau tidak ada. Detail. | Lakukan upgrade ke 2.7.6 atau lebih baru. |
| 2.7.8 | Membuat jumlah instans Nacos Client yang berlebihan, menyebabkan lonjakan koneksi dan thread yang memengaruhi stabilitas client maupun server. Detail. | Lakukan upgrade ke 2.7.9 atau lebih baru. |
| 2.7.11 | Secara default bergantung pada Nacos-Java-Client 1.4.1 (versi yang dibatasi). | Lakukan upgrade ke 2.7.12 atau lebih baru, atau atur eksplisit versi Nacos Client ke 1.4.2 atau lebih baru. |
| 2.7.19 dan sebelumnya | Saat Dubbo berlangganan ke suatu layanan, ia berlangganan ke beberapa nama layanan. Selama agregasi daftar alamat, konsumen mungkin gagal menemukan penyedia. Detail. | Lakukan upgrade ke 2.7.20 atau lebih baru. |
| 3.0.0 - 3.1.5 | Mengandung isu yang diketahui yang memengaruhi stabilitas. | Lakukan upgrade ke 3.1.6 atau lebih baru. |
Spring Cloud Alibaba
| Versi yang Dibatasi | Masalah | Aksi |
|---|---|---|
| Sebelum 2.2.4 | Menimpa konfigurasi log Nacos Client. Log Nacos ditulis ke log bisnis aplikasi, sehingga menyulitkan troubleshooting. Detail. | Lakukan upgrade ke 2.2.6.RELEASE atau lebih baru. |
| 2.2.4.RELEASE, 2.2.5.RELEASE | Secara default bergantung pada Nacos-Java-Client 1.4.1 (versi yang dibatasi). | Lakukan upgrade ke 2.2.6.RELEASE atau lebih baru, atau atur eksplisit versi Nacos Client ke 1.4.2 atau lebih baru. |
| 2.2.X.RELEASE, 2021.*, 2022.* | Secara default menambahkan probe pemeriksaan kesehatan Nacos ke pemeriksaan kesehatan Spring Cloud Actuator. Ketika terjadi exception akses antara aplikasi dan Nacos, hal ini dapat menyebabkan restart aplikasi yang tidak terduga atau penghapusan trafik. Detail. | Tambahkan konfigurasi berikut ke file konfigurasi aplikasi Anda: management.health.nacos-config.enabled=false dan management.health.nacos-discovery.enabled=false. Atau lakukan upgrade ke 2023.0.3.4 atau lebih baru. |
Lakukan upgrade Nacos SDK Anda
-
Identifikasi SDK dan versi yang saat ini digunakan oleh aplikasi Anda (periksa
pom.xml,go.mod,requirements.txt, ataupackage.json). -
Periksa tabel di atas untuk mengonfirmasi versi target.
-
Perbarui versi dependensi dalam file konfigurasi build Anda.
-
Bangun ulang dan uji aplikasi di lingkungan staging.
-
Deploy aplikasi yang telah diperbarui.
Catatan: MSE mengelola versi Nacos sisi server. Tabel di atas berlaku untuk SDK client yang disertakan dalam aplikasi Anda.