API7 Enterprise とのサービスディスカバリーと登録の統合

Zhihuang Lin

Zhihuang Lin

June 13, 2024

Products

マイクロサービスアーキテクチャの普及に伴い、サービス間の関係はますます複雑になっています。このような状況下で、サービスディスカバリは特に重要であり、サービスが互いに動的に見つけ出し、相互作用することを可能にします。

API7 Enterpriseは、機能豊富なAPI管理プラットフォームとして、サービスディスカバリレジストリとシームレスに統合し、上流サービスの自動検出とインテリジェントなルーティングを実現します。

サービスディスカバリとは何か?

サービスディスカバリは、ネットワーク内のサービスインスタンスとそのアドレスを自動的に検出するメカニズムであり、他のサービスやクライアントがそれらを見つけて通信できるようにします。現代の分散システムやマイクロサービスアーキテクチャにおいて、サービスディスカバリは重要なコンポーネントであり、サービスアドレスをハードコードしたり、手動で設定を更新したりすることなく、サービスを動的にローカライズして接続することが可能になります。

サービスディスカバリの機能

  1. 動的サービスローカライゼーション: マイクロサービスアーキテクチャでは、サービスインスタンスが動的に起動、停止、移行、またはスケーリングされることがあります。サービスディスカバリはこれらの変更を自動的に追跡し、クライアントが常に利用可能なサービスインスタンスを見つけられるようにします。

  2. フォールトトレランスとフェイルオーバー: サービスインスタンスが故障した場合、サービスディスカバリはその可用性を検出し、クライアントを他の健全なインスタンスに接続するように指示し、フェイルオーバーと高可用性を実現します。

  3. 設定と管理の簡素化: サービスディスカバリを通じて、開発者は各サービスのネットワークアドレスを手動で設定および管理する必要がなくなります。これにより、設定エラーの可能性が減少し、サービスの展開と管理が簡素化されます。

API7 Enterpriseにおけるサービスディスカバリ

サービスディスカバリは、ロードバランサーやAPIゲートウェイと組み合わせて使用されることが多く、リクエストが複数のサービスインスタンスに均等に分散されるようにし、システムのスループットと応答時間を向上させます。分散システムでは、サービスインスタンスがさまざまな理由で利用できなくなることがあり、サービスディスカバリメカニズムはこれらの問題を迅速に識別し、ロードバランサーを通じてリクエストを他の健全なサービスインスタンスにリダイレクトし、サービスの高可用性を確保します。

API7 Enterpriseでは、「アップストリーム」という概念がこの柔軟性をさらに拡張します。アップストリームをサービスレジストリとして設定することで、APIゲートウェイはバックエンドサービスインスタンスのリストを動的に取得し、必要に応じてリクエストの分散戦略を調整できます。これは、サービスインスタンスの数や状態が変化した場合でも、APIゲートウェイが迅速に適応できることを意味し、手動での設定更新やサービスの再起動は必要ありません。

サービスディスカバリとAPIゲートウェイの連携は、マイクロサービスアーキテクチャに強力な動的サービス管理とトラフィック制御機能を提供します。API7 Enterpriseはこの機能をさらに強化および拡張し、システムがさまざまな複雑なシナリオや要件に対応する際に、より柔軟で効率的になることを可能にします。さらに、クラウドネイティブやコンテナ化技術の普及に伴い、サービスインスタンスの展開とスケーリングがより簡単かつ迅速になりました。

API7 Enterpriseでサービスディスカバリを設定する方法

サービスレジストリの追加

ゲートウェイグループで、サービスレジストリページに移動し、「サービスレジストリ接続を追加」ボタンをクリックすると、接続フォームが表示されます。

API7 Enterpriseでサービスレジストリ接続を追加

フォームでは、サービスレジストリの基本情報と関連する接続設定を入力する必要があります。現在、API7 EnterpriseはKubernetesとNacosサービスレジストリの統合をサポートしています。ここでは、Nacosを例として使用します。ディスカバリタイプとして「Nacos」を選択し、API7 Enterpriseが認証用のトークンを取得する方法を指定します。これは、アカウント/パスワード、アクセスキーとシークレットキー、またはトークン値を直接入力することで行うことができます。

サービスレジストリの情報を追加

基本的な認証設定に加えて、API7 Enterpriseは接続タイムアウトや読み取り/書き込みタイムアウトなど、より細かい設定オプションも提供しています。これらの設定は、実際のニーズに基づいて柔軟に調整でき、不安定なネットワーク接続による長時間のリクエスト待ちを効果的に回避し、システムリソースの非効率的な使用を減らすことができます。

サービスレジストリを作成すると、新しい接続項目がすぐにリストに表示されますが、システムのチェック後に接続状態が健全とマークされます。この接続項目を通じて、ユーザーはサービスディスカバリの状態とサービスレジストリの関連設定を便利に確認できます。

サービスレジストリ接続を追加

アップストリームでサービスディスカバリを設定

サービスレジストリはゲートウェイグループに属するリソースです。サービスレジストリが作成されたゲートウェイグループでは、そのゲートウェイグループに公開されたサービスは、このサービスレジストリの設定を使用できます。サービスの公開プロセス中または公開済みのサービスで、アップストリームを設定することができます。

サービステンプレートを選択し、サービスレジストリを追加したゲートウェイグループに公開し、アップストリームとしてサービスディスカバリを使用することを選択します。次に、先ほど作成したNacosサービスレジストリを選択し、特定の名前空間、グループ、インスタンスを選択します。

アップストリームでサービスディスカバリを設定

サービスが公開されると、サービスの詳細ページのアップストリームページで現在設定されているサービスレジストリを確認し、いつでもサービスディスカバリの設定を変更できます。

アップストリームページのサービスレジストリ

関連サービスの表示、接続設定の更新と削除

サービスレジストリのリストでは、右側の「その他」メニューを通じて、接続設定を便利に管理し、接続履歴を確認し、サービスの使用状況を追跡したり、不要になった接続設定を削除したりできます。

サービスレジストリの状態チェック

「関連サービス」は、サービスディスカバリの設定が変更されたサービスを明確に示し、設定変更を行う前に潜在的な影響を評価し、操作リスクを効果的に回避することができます。

関連サービス

サービスレジストリの接続設定を更新すると、そのレジストリを使用しているすべてのアップストリームサービスに影響が及ぶことに注意してください。すでにアップストリームサービスが使用している場合、レジストリのディスカバリタイプを変更したり、接続を直接削除したりすることはできません。まず、アップストリームサービスの設定を手動で調整して他のレジストリやノードを使用するようにし、その後削除操作を行う必要があります。

アップストリームが使用されていない場合のサービスレジストリ接続の削除

結論

サービスディスカバリの詳細な概念、その役割、およびAPI7 Enterpriseでの応用について説明しました。サービスディスカバリを通じて、マイクロサービスアーキテクチャはサービスを動的に管理および呼び出すことができ、システムの柔軟性と可用性が大幅に向上します。

マイクロサービスアーキテクチャが進化し続ける中で、サービスディスカバリの重要性はますます明らかになっています。今後、サービスディスカバリは、インテリジェンス、自動化、フォールトトレランスにさらに焦点を当てることが期待されます。

API7 Enterpriseは、より多くの種類のサービスレジストリとの統合を探求し、ヘルスチェックと組み合わせて、より強力な高可用性を実現し、企業がより堅牢で効率的なマイクロサービスアーキテクチャを構築するのを支援します。

Tags: