> 業界の洞察 >サーボ
テクニカルサポート

製品サポート

マイクロサービスでのサービス検出の例

発行済み 2026-01-19

マイクロサービスが「かくれんぼ」を始めたらどうすればよいでしょうか?

クールなマイクロサービス システムを構築すると想像してください。最初はすべてが順調に進み、全員が自分の仕事をこなし、協力関係は快適でした。しかし、徐々にサービスの数は増えてきました。今日、ユーザー モジュールが追加され、明日にはサービスが発注されます。ある日突然、問題が発生しました。注文サービスは取引を完了するために支払いサービスを見つけようとしましたが、相手がどこに移動したか知りませんでした。ユーザー サービスは住所を更新しましたが、在庫サービスは愚かにも古い場所に発送し続けました。システム全体は、アドレス帳のないパーティーのようなものです。誰もが顔を見合わせますが、話したい人が見つかりません。効率?忘れて。混乱と遅れが常態化しました。

これは、「サービス検出」が欠落している場合に発生する厄介な問題です。これは素晴らしい新機能ではありませんが、物事の基本的な順序です。これがなければ、マイクロサービスは混乱し、すべての呼び出しが冒険のように感じられます。

サービスディスカバリは具体的に何をするのでしょうか?

簡単に言うと「リアルタイムアドレス帳」です。動的なマイクロサービス環境では、負荷の変化やネットワークの場所 (IP アドレスなど) の変化に応じて、サービス インスタンスが作成または破棄されます。サービス検出メカニズムの中核となるタスクは、新しく起動された各サービス インスタンスを自動的に登録し、他のサービスがいつでもこれらのインスタンスの最新の場所をクエリできるようにすることです。

これは主に 2 つのことを処理します。 登録: サービス インスタンスが開始された後、「サービス ディスカバリ登録センター」に積極的に報告し、「私はここにいます、私は誰ですか、そして私は何ができるのか」を伝えます。クエリ: サービス A がサービス B を呼び出す必要がある場合、アドレスをハードコーディングせずに、登録センターに「ねえ、今どのサービス B が利用できるの? アドレスを教えてください。」と尋ねます。登録センターは、現在正常で使用可能なインスタンス アドレスを返します。

これは、各同僚の固定のワークステーション番号を覚えておく必要がなくなり、いつでも更新されるオンライン座席表があり、誰が座席を変更したかが一目瞭然であるようなものです。

なぜそれを使用しなければならないのですか?保存できないんですか?

IPリストを手動で管理できないのではないかと思う人もいるかもしれません。サービスが少なく、極端に固定されているサービスであれば、しばらくは持ちこたえられるかもしれません。しかし、規模が大きくなると、手動メンテナンスは悪夢のようなものになります。考えてみてください。拡張または縮小するたび、またはフェールオーバーするたびに、関連するすべてのサービスの構成を手動で更新し、再起動する必要があります。これは膨大な作業負荷であるだけでなく、失敗の温床でもあります。構成の遅延またはエラーにより、連鎖的な障害が発生する可能性があります。

サービス ディスカバリの利点は次のとおりです。

  • 高い弾性: インスタンスの障害や新規追加が発生した場合、システムはトラフィックを自動的に感知して調整できるため、サービスが中断されることはありません。
  • 高い拡張性: 水平方向に簡単に拡張でき、新しいインスタンスが自動的にクラスターに参加し、外部に対して透過的になります。
  • 構成の簡素化: サービス間の呼び出しはハードコーディングされたエンドポイントに依存しなくなり、構成管理が非常に簡単になります。
  • 負荷分散: 検出メカニズムは通常、負荷分散と組み合わせて、最もビジーなインスタンスにリクエストをインテリジェントに分散できます。

現実の世界ではどのように機能するのでしょうか?

日常的な例を見てみましょう。電子商取引アプリケーションがあるとします。コアサービスには、ユーザーサービス、製品カタログサービス、注文サービス、在庫サービスが含まれます。

  1. 起動する: インベントリ サービスの新しいインスタンスが開始されると (たとえば、プロモーションによりサーバーが追加される)、サービス ディスカバリ登録センター (Consul、Etcd、または Eureka などの共通コンポーネントなど) にすぐに登録リクエストが送信されます。「私は、192.168.1.10:8080 で実行されているインベントリ サービス、バージョン v1 です。」
  2. 発見する: 現時点では、注文サービスは新しい注文を処理するために在庫を差し引く必要があります。固定 IP には直接接続しませんが、同じ登録センターに対して「利用可能なインベントリ サービス インスタンスが必要です」というクエリを開始します。
  3. ルーティング: 登録センターは、現在正常な 1 つ以上のインベントリ サービス インスタンス アドレス (上記の 192.168.1.10:8080 や別のインスタンス 192.168.1.11:8080 など) を返します。注文サービスはアドレスを取得し、呼び出しを開始します。通常、クライアントには単純な負荷分散が組み込まれており、これらのアドレスをローテーションまたはランダムに選択します。
  4. 健康診断: 登録センターは、登録されたインスタンスのヘルスチェックを継続的かつ定期的に実行します (HTTP リクエストの送信など)。インベントリ サービス インスタンス 192.168.1.10:8080 がダウンしていて応答しない場合、登録センターはそれを利用可能なリストから削除します。
  5. 更新する: Order サービスが次回再度クエリを実行すると、まだ正常な 192.168.1.11:8080 アドレスのみが取得されます。障害のあるインスタンスは、プロセス全体で手動介入することなく自動的に隔離されます。

ほら、秩序が確立されています。各サービスは他のサービスを見つける方法を知っており、システムには修復と成長の機能があります。

プランを選ぶとき、どこに注目すればいいでしょうか?

「何を」「なぜ」を理解したら、次は当然「どう選ぶか」です。さまざまなサービス検出ツールまたはモード (クライアント検出とサーバー検出) に直面して、熟考する価値のある重要な点がいくつかあります。

  • 一貫性の保証: 分散システムでは、データの一貫性が非常に重要です。サービス検出レジストリは強力な一貫性を提供できますか?これは、異なるサービスが異なるインスタンス リストを取得して呼び出しに混乱が生じるのを防ぐために重要です。通常、Raft プロトコルに基づくツールはこの保証を提供します。
  • ヘルスチェックの仕組み:「登録されている」だけでは「利用可能」ではありません。完全なヘルス チェック (HTTP、TCP、さらにはカスタム スクリプト) により、障害のあるノードを迅速に排除できます。これはシステムの回復力の基礎です。
  • エコロジーとの統合: 既存のテクノロジー スタック (Kubernetes、Spring Cloud など) と簡単に統合できますか?シームレスな統合により、多くのカスタム開発作業を削減できます。
  • 運用とメンテナンスの複雑さ: 別のクラスターを維持する必要がありますか、それとも既存のインフラストラクチャー (K8 など) の組み込み機能ですか?これはチームの運営上の負担に直接関係します。
  • パフォーマンスと規模: 簡単に管理できるサービス インスタンスの数はどれくらいですか?クエリのレイテンシーはどれくらいですか?規模が拡大するにつれて、これらがボトルネックになるのでしょうか?

すべてに対応できる万能の解決策はありません。鍵は、チームの規模、テクノロジーの好み、ビジネス シナリオの緊急のニーズによって異なります。場合によっては、簡単に始めた方が早く軌道に乗ることがあります。

始まったパーティーに戻る

実際、技術的な決定は、多くの場合、最も単純な当初の意図に戻ります。つまり、「かくれんぼ」の混沌とし​​たゲームでエネルギーを浪費し続けるのか、それともすべてのサービスがスムーズに通信して任務を実行できるコラボレーション プラットフォームを構築するつもりなのか。サービスディスカバリは、このプラットフォームの基礎の 1 つです。

うるさくはありませんが、重要です。これにより、アドレス構成の泥沼に囚われることなく、マイクロサービス アーキテクチャの真の利点 (俊敏性、弾力性、スケーラビリティ) を解き放つことができます。次に設計またはシステムを行うときは、次のことを自問してください。自分のサービスは簡単に他のサービスを見つけることができるでしょうか?答えがわからない場合は、「リアルタイム アドレス帳」を導入する時期が来たかもしれません。

結局のところ、優れたシステムでは、サービスがお互いを見つけるために常に移動しているのではなく、いつでも集まることができる古い友人のようにできる必要があります。

2005年に設立され、キロパワーは、中国広東省東莞に本社を置く、コンパクトモーションユニットの専門メーカーです。モジュラードライブテクノロジーのイノベーションを活用し、キロパワー高性能モーター、精密減速機、マルチプロトコル制御システムを統合し、効率的でカスタマイズされたスマート ドライブ システム ソリューションを提供します。キロパワーは、スマート ホーム システム、自動エレクトロニクス、ロボティクス、精密農業、ドローン、産業オートメーションなどのさまざまな分野をカバーする製品で、世界中の 500 を超える企業クライアントにプロフェッショナルなドライブ システム ソリューションを提供してきました。

更新時間:2026-01-19

未来に力を与える

お客様の製品に適したモーターまたはギアボックスを推奨するには、Kpower の製品スペシャリストにお問い合わせください。

Kpowerにメールする
お問い合わせを送信
+86 0769 8399 3238
 
kpowerMap