2

新しいエージェントを領事メンバーのグループに参加させるには、少なくとも 1 人の既存のメンバーの IP を知る必要があります。既存のグループ メンバーの IP がわからないシナリオをサポートする必要があります。サービス検出は完全に自動的に実行される必要があるため、この状況では人間の介入は不可能です。

これを解決するための私の考え: ブロードキャストまたはマルチキャストを介して、ネットワーク内の他のコンピューターにメッセージを送信できます。すべてのコンピューターは、私が実装するカスタム サービスをホストします。そのサービスは、consul がリッスンしている IP アドレスを使用して、この特別なブロードキャスト/マルチキャスト メッセージ (例: 「既存のクラスター メンバーを探しています」) に応答します。その後、サービスはネットワークから 1 つ以上の応答を取得し、IP アドレスの 1 つを使用してクラスターに参加します。

この問題を解決するためのより良いアイデアはありますか? これを解決する既存のライブラリはありますか?

4

1 に答える 1

3

Hashicorp は Atlas の一部として無料のサービスを提供しており、これを行うことができます: https://www.consul.io/docs/guides/atlas.html

カスタムサービスなしでそれを行う他の簡単な方法:

  • サーバーが Consul クラスターに参加する前に、サーバーがアクセスできるサードパーティの DNS で Consul サーバーを公開します。または、参加する IP を返し、curl などを使用して IP を取得する http サービスを公開します。Consul を使用して IP を最新の状態に保ちます。
  • マシンに関するメタデータを提供する AWS または同様のサービスで実行している場合は、そのサービスを使用して Consul ボックスにタグを付けてから、サービスのクエリ機能を使用して、「Consul のタグがあり、実行されているサーバーを見つける」などのことを行い、それらを渡します。参加する。
于 2015-11-17T23:51:18.103 に答える