Microservices Engine (MSE) Nacos は、複数言語の SDK を通じて、サービス登録、サービス検出、構成管理を提供します。このガイドを使用して、ご利用の技術スタックに適した SDK を選択し、既知の安定性の問題がある SDK バージョンを回避してください。
推奨される最小 SDK バージョン
安定性と互換性のために、少なくとも以下のバージョンを使用してください。
| SDK | 推奨される最小バージョン |
|---|---|
| Java (Nacos Client) | 2.3.2 以降 |
| Go (nacos-sdk-go) | 2.3.3 以降 (Professional Edition)、1.1.6 以降 (Basic Edition) |
| Python (nacos-sdk-python) | 2.0.7 以降 |
| Dubbo | 2.7.20 以降 (2.x)、3.1.6 以降 (3.x) |
| Spring Cloud Alibaba | 2.2.6.RELEASE 以降 |
回避すべき特定のバージョンについては、以下の「制限付き SDK バージョン」セクションをご参照ください。
技術スタックに応じた SDK の選択
Java
| 連携 | 説明 | 参考 |
|---|---|---|
| ネイティブ SDK | Nacos Java SDK を通じて直接接続します。 | Java SDK |
| Spring Boot | Spring Boot 内で Nacos をサービスレジストリおよび構成センターとして使用します。 | Nacos with Spring Boot |
| Spring Cloud | Nacos を Spring Cloud と統合して構成管理を行います。 | Nacos with Spring Cloud |
| Dubbo | Dubbo サービスを Nacos に登録し、高性能なリモートプロシージャコール (RPC) を実現します。 | Dubbo on MSE |
Go
| 連携 | 説明 | 参考 |
|---|---|---|
| ネイティブ SDK | Go SDK を使用してサービスレジストリと構成センターをセットアップします。 | nacos-sdk-go |
| Dubbo-Go | Apache Dubbo-Go と Nacos を使用して Go で RPC サービスを構築します。 | Dubbo-Go |
| Kitex | Nacos サービスレジストリのサポートが組み込まれた Go マイクロサービス用の RPC フレームワークである Kitex を使用します。 | - |
Node.js
| 連携 | 説明 | 参考 |
|---|---|---|
| ネイティブ SDK | Node.js SDK を使用してサービス登録とサービス検出を実装します。 | nacos-sdk-nodejs |
Python
| 連携 | 説明 | 参考 |
|---|---|---|
| ネイティブ SDK | Python SDK を使用してマイクロサービスシステムを構築します。 | nacos-sdk-python |
サービスメッシュ (Istio)
MSE Nacos は、Mesh Configuration Protocol (MCP) 標準を介して Istio サービスメッシュエコシステムと連携します。Nacos をサービスメッシュに接続するには、「サービスソースの作成」をご参照ください。
制限付き SDK バージョン
特定の SDK バージョンには、サービス停止、パフォーマンスの低下、またはデータの問題を引き起こす可能性のある既知のバグがあります。以下にリストされているバージョンを避け、推奨される代替バージョンにアップグレードしてください。
Java SDK (Nacos Client)
| 制限付きバージョン | 問題 | アクション |
|---|---|---|
| 0.x - 1.1.x | 軽量のサービスハートビートをサポートしていません。大きすぎるハートビートパケットはパフォーマンスを低下させます。詳細。 | 1.2.0 以降にアップグレードします。 |
| 1.4.0 以前 | バージョン 1.4.0 以前では、ネットワークパケットの損失やその他の予期しないエラーが発生した場合、ハートビートスレッドが予期せず終了します。サービスがオフラインになり、自動的に回復できません。詳細。 | 1.4.3 以降にアップグレードします。 |
| 1.4.1 - 1.4.2 | 1.4.1:DNS が利用できず、名前解決に失敗した場合、ハートビートスレッドが予期せず終了します。サービスがオフラインになり、自動的に回復できません。詳細。1.4.2:getConfigAndSignListener API は、暗号化された構成をクエリするときにプレーンテキストのコンテンツを返します。 |
1.4.3 以降にアップグレードします。 |
| 2.0.0 - 2.0.1 | RAM ID 情報を保持できません。エンジンでクライアント認証を有効にした後、必須情報が構成されていても、クライアントは構成の取得、サービスの登録、またはサービスの検出ができません。 | 2.0.2 以降にアップグレードします。 |
| 2.2.0 - 2.2.1 | EDAS または SAE を介してデプロイする場合、-Dnacos.use.endpoint.parsing.rule=false および -Dnacos.use.cloud.namespace.parsing=false JVM パラメーターは効果がありません。これにより、アプリケーションが MSE Nacos クラスターに接続できなくなります。 |
2.2.2 以降にアップグレードします。 |
| 2.3.1 | 構成が変更されていない場合でも、サーバーは構成の更新を繰り返しプッシュします。これにより、不要な CPU とネットワークのオーバーヘッドが発生し、安定性に影響を与える可能性があります。詳細。 | 2.3.2 以降にアップグレードします。 |
Go SDK (nacos-sdk-go)
| 制限付きバージョン | 問題 | アクション |
|---|---|---|
| 1.0.1 - 1.1.3 | クライアントは常にバージョンを 1.0.1 として報告するため、正確なバージョン識別ができません。2 つの重大なバグにより、頻繁な変更通知やハートビートの中断が発生する可能性があります。 | Basic Edition:1.1.6 以降にアップグレードします。Professional Edition:2.3.2 以降にアップグレードします。 |
| 1.1.4 | サブスクライブした構成が削除されると、クライアントは存在しないサービスを継続的にクエリします。その結果生じる構成クエリリクエストの殺到は、レート制限をトリガーし、他のアプリケーションに影響を与える可能性があります。詳細。 | 1.1.4 より後のバージョンにアップグレードします。推奨される最小バージョンについては、上記の「推奨される最小 SDK バージョン」の表をご参照ください。 |
| 2.0.0 - 2.1.0 | クライアントは常にバージョンを 2.0.0 として報告するため、正確なバージョン識別ができません。再接続後、インスタンスは自動的にサービスに再登録または再サブスクライブしません。サービスがオフラインになり、回復できません。詳細。 | 2.3.3 以降にアップグレードします。 |
| 2.2.7 - 2.3.1 | クライアントは常にバージョンを 2.2.7 として報告するため、正確なバージョン識別ができません。2 つの重大なバグにより、サービス変更通知の受信失敗や接続中断後のサービス損失が発生する可能性があります。 | 2.3.3 以降にアップグレードします。 |
Python SDK (nacos-sdk-python)
| 制限付きバージョン | 問題 | アクション |
|---|---|---|
| 2.0.0 - 2.0.6 | 再接続後、クライアントはサービスや構成に自動的に再登録または再サブスクライブしません。これにより、自動回復のないサービス中断が発生します。 | 2.0.7 以降にアップグレードします。 |
Dubbo
| 制限付きバージョン | 問題 | アクション |
|---|---|---|
| 2.7.5 以前 | 複数のサービスをサブスクライブしている場合、プロバイダーのアドレスリストの変更が取得されません。トラフィックがオフラインまたは存在しないプロバイダーにルーティングされる可能性があります。詳細。 | 2.7.6 以降にアップグレードします。 |
| 2.7.8 | 過剰な数の Nacos Client インスタンスを作成し、接続とスレッドが急増して、クライアントとサーバーの両方の安定性に影響を与えます。詳細。 | 2.7.9 以降にアップグレードします。 |
| 2.7.11 | デフォルトで Nacos-Java-Client 1.4.1 (制限付きバージョン) に依存します。 | 2.7.12 以降にアップグレードするか、Nacos Client のバージョンを明示的に 1.4.2 以降に設定します。 |
| 2.7.19 以前 | Dubbo がサービスをサブスクライブするとき、複数のサービス名をサブスクライブします。アドレスリストの集約中に、コンシューマーがプロバイダーを見つけられない場合があります。詳細。 | 2.7.20 以降にアップグレードします。 |
| 3.0.0 - 3.1.5 | 安定性に影響を与える既知の問題が含まれています。 | 3.1.6 以降にアップグレードします。 |
Spring Cloud Alibaba
| 制限付きバージョン | 問題 | アクション |
|---|---|---|
| 2.2.4 より前 | Nacos Client のログ構成を上書きします。Nacos のログがアプリケーションのビジネスログに書き込まれるため、トラブルシューティングが複雑になります。詳細。 | 2.2.6.RELEASE 以降にアップグレードします。 |
| 2.2.4.RELEASE, 2.2.5.RELEASE | デフォルトで Nacos-Java-Client 1.4.1 (制限付きバージョン) に依存します。 | 2.2.6.RELEASE 以降にアップグレードするか、Nacos Client のバージョンを明示的に 1.4.2 以降に設定します。 |
| 2.2.X.RELEASE, 2021.*, 2022.* | デフォルトで Nacos ヘルスチェックプローブを Spring Cloud Actuator のヘルスチェックに追加します。アプリケーションと Nacos の間でアクセス例外が発生した場合、予期しないアプリケーションの再起動やトラフィックの削除を引き起こす可能性があります。詳細。 | アプリケーションの設定ファイルに次の構成を追加します:management.health.nacos-config.enabled=false および management.health.nacos-discovery.enabled=false。または、2023.0.3.4 以降にアップグレードします。 |
Nacos SDK のアップグレード
-
アプリケーションが現在使用している SDK とバージョンを特定します (
pom.xml、go.mod、requirements.txt、またはpackage.jsonを確認します)。 -
上記の表でターゲットバージョンを確認します。
-
ビルド設定ファイルで依存関係のバージョンを更新します。
-
ステージング環境でアプリケーションを再ビルドしてテストします。
-
更新されたアプリケーションをデプロイします。
注:MSE はサーバー側の Nacos バージョンを管理します。上記の表は、アプリケーションにバンドルされているクライアント SDK に適用されます。