MSE Nacos ソフトウェア開発キット (SDK) は、マイクロサービスモデルにおける重要なコンポーネントであり、効率的で柔軟なサービス登録と検出を提供します。このトピックでは、技術スタックとフレームワークに基づいて適切な SDK バージョンを選択する方法と、制限付きバージョンを回避する方法について説明します。
MSE Nacos SDK の適用
MSE Nacos は、さまざまなマイクロサービスシステムやビジネスシナリオに対応するために、複数のプログラミング言語やフレームワークとの統合をサポートしています。お使いの技術スタックとフレームワークに合ったベストプラクティスを選択してください。
お使いのビジネスがマイクロサービスシステムで Java 技術スタックを使用している場合:
ネイティブ SDK: Nacos Java SDK を使用してエンジンに接続します。詳細については、「Java SDK」をご参照ください。
Spring Boot: Nacos は、Spring Boot アーキテクチャのユーザー向けに完全なアクセスソリューションを提供します。詳細については、「Spring Boot で Nacos をサービスレジストリおよび設定センターとして使用する」をご参照ください。
Spring Cloud: Nacos を Spring Cloud と統合して、Nacos の構成管理を簡素化します。詳細については、「Nacos と Spring Cloud を使ってみる」をご参照ください。
Dubbo: Dubbo フレームワークは、高性能なリモートプロシージャコール (RPC) 技術を使用して Nacos にサービスを登録し、サービス間の相互呼び出しを可能にします。詳細については、「Dubbo アプリケーション用に MSE 上にサービスレジストリを構築する」をご参照ください。
お使いのビジネスが Golang 技術スタックを使用している場合:
ネイティブ SDK: サービスレジストリと設定センターを迅速にセットアップするには、Nacos-SDK-Go サンプルプロジェクトをご参照ください。
Dubbo-Go: Apache Dubbo-Go を使用すると、Go ユーザーは Nacos に基づいて RPC サービスを構築できます。詳細については、「Apache Dubbo-Go」をご参照ください。
Kitex: Kitex は Go マイクロサービス向けの RPC フレームワークです。デフォルトで Nacos サービスレジストリと統合されています。
お使いのビジネスが Node.js 技術スタックを使用している場合:
ネイティブ SDK: Nacos は Node.js 用の接続メソッドを提供します。サービス登録と検出を実装するには、Nacos-SDK-Nodejs の例をご参照ください。
お使いのビジネスが Python 技術スタックを使用している場合:
Nacos を統合してマイクロサービスシステムを構築します。詳細については、「Nacos-SDK-Python」をご参照ください。
さらに、MSE Nacos は Istio サービスメッシュエコシステムと完全に統合されており、開発者がクラウドネイティブシナリオで Nacos を使用するのに役立ちます。Nacos はメッシュ構成プロトコル (MCP) 標準をサポートしています。Nacos を Service Mesh と統合するには、「サービスソースの作成」をご参照ください。
Nacos SDK の制限付きバージョン
マイクロサービスシステムの安定性を確保するため、このトピックに記載されている制限付きの Nacos SDK バージョンの使用は避けてください。このトピックでは、制限付きバージョン、制限の理由、および推奨されるソリューションについて説明します。
Java
制限付きバージョン | 回避する理由 | ソリューション |
0.X ~ 1.1.X | 軽量サービスのハートビートがサポートされていません。これにより、ハートビートパケットが大きくなりすぎ、パフォーマンスが低下します。詳細については、「詳細」をご参照ください。 | バージョン 1.2.0 以降にアップグレードしてください。 |
1.4.1 ~ 1.4.2 |
| バージョン 1.4.3 以降にアップグレードしてください。 |
2.0.0 から 2.0.1 | これらのバージョンは RAM ID 情報を伝送できません。エンジンでクライアント認証を有効にすると、必要な情報を構成していても、構成の取得、サービスの登録、またはサービスの検出ができません。 | バージョン 2.0.2 以降にアップグレードしてください。 |
2.2.0 ~ 2.2.1 | EDAS または SAE を使用してアプリケーションをデプロイするときに、 | バージョン 2.2.2 以降にアップグレードしてください。 |
2.3.1 | 構成をサブスクライブすると、構成が変更されていない場合でも、サーバーが頻繁に構成をプッシュします。これにより、不要な CPU とネットワークのオーバーヘッドが発生し、安定性に影響を与える可能性があります。詳細については、「詳細」をご参照ください。 | バージョン 2.3.2 以降にアップグレードしてください。 |
Go
制限付きバージョン | 非推奨の理由 | ソリューション |
1.0.1 ~ 1.1.3 | クライアントのバージョンが常に 1.0.1 と表示されるため、正確なバージョン識別ができません。また、2 つの重大なバグが存在し、頻繁な変更通知やハートビートの中断などの問題を引き起こす可能性があります。 |
|
1.1.4 | サブスクライブした構成が削除されると、クライアントのバグにより、存在しないサービスに対するクエリが継続的に発生します。これにより、多数の構成クエリリクエストが生成され、構成クエリ API のレート制限がトリガーされ、構成をクエリしている他のアプリケーションに影響を与える可能性があります。詳細については、「詳細」をご参照ください。 | |
2.0.0 ~ 2.1.0 | クライアントのバージョンが常に 2.0.0 と表示されるため、正確なバージョン識別ができません。再接続後、このバージョンのインスタンスはサービスを自動的に再登録または再サブスクライブしません。これにより、サービスがオフラインになり、自動回復が妨げられます。詳細については、「詳細」をご参照ください。 | バージョン 2.3.2 以降にアップグレードしてください。 |
2.2.7 から 2.3.1 | クライアントのバージョンが常に 2.2.7 と表示されるため、正確なバージョン識別ができません。また、2 つの重大なバグが存在する可能性があり、サービス変更通知の受信失敗や接続中断後のサービス損失につながる可能性があります。 |
Python
制限付きバージョン | 理由 | ソリューション |
2.0.0 から 2.0.6 | 再接続後、このバージョンはサービスと構成を自動的に再登録または再サブスクライブしません。これにより、サービスが中断され、自動回復が妨げられます。 | バージョン 2.0.7 以降にアップグレードしてください。 |
関連フレームワーク
Dubbo
制限付きバージョン | 非推奨の理由 | ソリューション |
2.7.5 以前 | 複数のサービスをサブスクライブすると、プロバイダーのアドレスリストへの変更が取得されません。これにより、トラフィックがオフラインまたは存在しないプロバイダーにルーティングされる可能性があります。詳細については、「詳細」をご参照ください。 | バージョン 2.7.6 以降にアップグレードしてください。 |
2.7.8 | Dubbo は過剰な数の Nacos クライアントインスタンスを作成します。これにより、接続とスレッドの数が急激に増加し、クライアントとサーバーの安定性に深刻な影響を与えます。詳細については、「詳細」をご参照ください。 | バージョン 2.7.9 以降にアップグレードしてください。 |
2.7.11 | デフォルトで Nacos-Java-Client 1.4.1 に依存します。 |
|
2.7.19 以前 | Dubbo がサービスをサブスクライブするとき、同じサービスに対して複数のサービス名をサブスクライブします。ただし、アドレスリストを集約するときに、コンシューマーがプロバイダーを見つけられない場合があります。詳細については、「詳細」をご参照ください。 | バージョン 2.7.20 以降にアップグレードしてください。 |
3.0.0 ~ 3.1.5 | バージョン 3.1.6 以降にアップグレードしてください。 |
Spring Cloud Alibaba
制限付きバージョン | 非推奨の理由 | ソリューション |
2.2.4 より前のバージョン | Nacos クライアントのログ構成を上書きします。これにより、多くの Nacos ログがアプリケーションのビジネスログに書き込まれ、アプリケーションのトラブルシューティングが複雑になります。詳細については、「詳細」をご参照ください。 | バージョン 2.2.6.RELEASE 以降にアップグレードしてください。 |
2.2.4.RELEASE & 2.2.5.RELEASE | デフォルトで Nacos-Java-Client 1.4.1 に依存します。 |
|