Consul を使用して、HTTP エンドポイントを使用してサービスを Consul Agent に登録します/v1/agent/service/register
。唯一の問題は、サービスが異なる IP アドレス (1 番目のインスタンス 10.0.0.1、2 番目の 10.0.0.2 など) にバインドされる可能性があり、Consul がリクエストの IP アドレスに基づいて自動的にアドレスを設定することです。
例えば、
「サービス インスタンス 1 (10.0.0.1)」が送信{name:'svs', id:'svs-01'}
され/v1/agent/service/register
、Consul はそれを次のように登録します。{name:'svs', id:'svs-01', Address: 10.0.0.1}
「サービス インスタンス 2 (10.0.0.2)」が送信{name:'svs', id:'svs-02'}
され/v1/agent/service/register
、Consul はそれを次のように登録します。{name:'svs', id:'svs-02', Address: 10.0.0.2}
Consul Agent Service Documentationによると、住所フィールドがサービス登録クエリで欠落している場合、提供されていない場合、住所はデフォルトでエージェントの住所になります。しかし、それは私が必要とするものではありません。
実行時にサービスの IP アドレスを検出しようとしましたが、ネットワーク インターフェイスが複数ある可能性があり、それらを区別するのは困難です。