7章サーバ間のサービスディスカバリ

ここまでで、安全なスタンドアロンのgRPCウェブサービスを構築しました。ここからは、スタンドアロンのサービスを分散サービスにするために、クラスタへのノードの追加や削除を自動的に処理できるようにするサービスディスカバリ(service discovery)を導入します。

サービスディスカバリになじみがなくても、心配しないでください。この章を読めばすぐになじめます。サービスディスカバリは、分散サービスの最も優れた点の一つです。マシンが自動的に他のサービスを見つけます(スカイネット†1が自我を持ち、支配するようになったとき、その役割を果たしたサービスディスカバリに感謝できます)。ここでは、サービスディスカバリの多くの利点を簡単に紹介します。

7.1 サービスディスカバリを使う理由

サービスディスカバリとは、サービスに接続する方法を見つけ出す処理です。サービス・ディスカバリ・ソリューションでは、レジストリregistry)とも呼ばれるサービスの最新リスト、サービスの位置、サービスの健全性を保持する必要があります。下流(downstream)のサービスは、このレジストリを照会して上流(upstream)のサービスの位置を発見し、接続します。たとえば、ウェブサービスがデータベースを発見して接続するような場合です。これにより、上流のサービスが変更されても(規模の拡大や縮小、交換など)、下流のサービスはそれらの上流のサービスへ接続できます†2

クラウドより前の時代には、手作業で管理および設定された固定アドレスを使って「サービスディスカバリ」を設定できました。それは、アプリケーションが静的なハードウェア上で動作していたために機能していました。ノードが頻繁に変更される最新のクラウドアプリケーションでは、サービスディスカバリが大きな役割を果たしています。 ...

Get Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.