Eureka、ZooKeeper、Nacos は、Java マイクロサービスモデルで一般的に使用されるサービスレジストリです。サービスレジストリは、サービス登録とサービス検出を処理し、サービスを相互に分離して動的な管理を可能にします。このトピックでは、Enterprise Distributed Application Service (EDAS) がサポートするサービスレジストリ、その O&M メソッド、および関連する操作について説明します。
レジストリセンター
サービスレジストリには、Eureka、ZooKeeper、Nacos などがあります。各サービスレジストリの詳細については、公式サイトまたは GitHub リポジトリをご参照ください。これにより、ビジネスニーズに基づいてサービスレジストリを選択できます。
EDAS は、使用するサービスレジストリに関係なく、アプリケーションにホスティングとマイクロサービスガバナンスを提供します。
EDAS にデプロイされたアプリケーションでは、サービスレジストリのタイプに応じて、さまざまな O&M メソッドを利用できます。
Nacos の使用
Nacos をサービスレジストリとして使用する場合、2 つの O&M オプションがあります。
-
EDAS の共有サービスレジストリを使用する
EDAS の共有サービスレジストリは、Nacos の商用版を統合しています。この統合により、Nacos のサービス登録とサービス検出機能が、組み込みのフルマネージドサービスコンポーネントとして提供されます。
メリット
EDAS の共有サービスレジストリには、次のメリットがあります。
-
共有コンポーネントであるため、サービスレジストリのデプロイとメンテナンスにかかるコストを削減できます。
-
サービス登録とサービス検出の呼び出しは暗号化され、ご利用のサービスを保護します。これにより、不正なアプリケーションによるサービスの検出を防ぎます。
-
EDAS の共有サービスレジストリは、他の EDAS コンポーネントと緊密に統合されており、完全なマイクロサービスソリューションを提供します。
操作
Kubernetes アプリケーションを作成またはデプロイする際に、[アプリケーションに設定されたサービスレジストリを使用する] オプションの選択を解除します。この操作により、アプリケーションに設定されている Nacos アドレスは、その設定に関係なく上書きされます。その後、アプリケーションは EDAS の共有サービスレジストリに接続します。
-
-
アプリケーションのレジストリ設定には、MSE ホスト型とセルフマネージドの両方の Nacos に対する 操作 が含まれます。
Kubernetes アプリケーションを作成またはデプロイする際に、[アプリケーションに設定されたサービスレジストリを使用する] を選択します。これにより、EDAS はアプリケーションを設定し、デプロイ中に設定済みの Nacos アドレスが EDAS の共有レジストリのアドレスに置き換えられるのを防ぎます。これにより、アプリケーションは設定済みのサービスレジストリを引き続き使用することが保証されます。
説明-
サービスレジストリが、ネットワーク経由で EDAS にホストされているアプリケーションと通信できることを確認してください。たとえば、同じ VPC 内に存在する必要があります。
-
Nacos 2.x は、すべてのリージョンからのアクセスをサポートしているわけではありません。そのため、クライアントはポート 9848 に接続できません。
-
[アプリケーションに設定されたサービスレジストリを使用する] の設定方法については、「マイクロサービスガバナンスの設定」をご参照ください。
-Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -
Eureka または ZooKeeper の使用
Eureka または ZooKeeper を使用する場合、Microservices Engine (MSE) のマネージドインスタンスまたはセルフマネージドインスタンスを選択できます。MSE およびマネージドサービスレジストリのメリットの詳細については、「Microservices Engine (MSE) とは」をご参照ください。
サービスレジストリが、ネットワーク経由で EDAS にホストされているアプリケーションと通信できることを確認してください。たとえば、同じ VPC 内に存在する必要があります。
操作
Eureka または ZooKeeper を使用する Kubernetes アプリケーションを EDAS で作成またはデプロイする際に、[アプリケーションに設定されたサービスレジストリを使用する] を選択します。詳細については、「マイクロサービスガバナンスの設定」をご参照ください。
また、アプリケーション設定で Eureka または ZooKeeper を Nacos に置き換えて、EDAS の共有サービスレジストリを使用することもできます。
他のタイプのサービスレジストリの使用
Consul など、他のタイプのサービスレジストリを使用する場合は、セルフマネージドレジストリを使用する必要があります。
サービスレジストリが、ネットワーク経由で EDAS にホストされているアプリケーションと通信できることを確認してください。たとえば、同じ VPC 内に存在する必要があります。
操作
アプリケーションにサービスレジストリが設定されている場合は、EDAS でアプリケーションを作成またはデプロイする際に [アプリケーションに設定されたサービスレジストリを使用する] を選択します。詳細については、「マイクロサービスガバナンスの設定」をご参照ください。
また、アプリケーション設定でサービスレジストリを Nacos に置き換えて、EDAS の共有サービスレジストリを使用することもできます。
よくある質問
EDAS の共有サービスレジストリに接続すると HTTP 403 エラーが発生するのはなぜですか?
EDAS はテナント認証情報を挿入します。しかし、ユーザー名とパスワードによる認証は、テナントベースの認証よりも優先度が高くなります。そのため、アプリケーションからサービスレジストリのユーザー名とパスワードの設定を削除する必要があります。
MSE のサービスレジストリおよび設定レジストリに接続するにはどうすればよいですか?
MSE のサービスレジストリおよび設定レジストリに接続するには、名前空間を作成する際に、マイクロサービス名前空間を MSE Nacos インスタンスに関連付けます。その後、アプリケーションを作成する際に、このマイクロサービス名前空間を選択します。マイクロサービス名前空間の作成方法の詳細については、「マイクロサービス名前空間の作成」をご参照ください。
共有サービスレジストリを使用している場合、コード内でその設定を読み取るにはどうすればよいですか?
EDAS に統合されている Application Configuration Management (ACM) 機能は、スタンドアロンの ACM プロダクトの提供終了による影響を受けません。コードの記述方法については、「ACM を使用した設定の動的プッシュ」をご参照ください。