Feignクライアントとeurekaサービスが同じサーバー上にないため、サービスアクセスレポート接続がエラーを拒否しました

  最近、会社のプロジェクトの技術アーキテクチャは、springcloudファミリーバケットです。もちろん、マイクロサービス管理はユーレカです。クライアントの呼び出しは、偽の呼び出しです。本番リリースステージに近いです。各ユーレカサービスの2つのインスタンスをデプロイして、サーバーの負荷分散を行います。マシンのサービスが起動した後、プロジェクトは問題なく実行されているように見えますが、複数の状況を検証するためにテストを行いました。サーバーのサービスを停止し、偽のクライアントのみを保持しました。外部の要求が偽のクライアントにヒットすると、エラーが報告されました。もう

  exception is feign.RetryableException:接続が拒否されました(接続が拒否されました)GET http:// ...の実行

  そのため、サービスのステータスを確認するためにeurekaインターフェースを開きました。サービスのステータスは正常ですが、実際には偽のクライアントがアクセスしているように見え、偽のクライアントが配置されているマシンのサービスを開始します。他のサービスは停止され、再度アクセスされます。 、OK、エラーなし、それは正常です。数回試してみて、偽のクライアントとサービスプロバイダーが同じサーバーにないことがわかります。最初に、マルチサービスインスタンス環境が開始されたときにインスタンス名が表示されるためです。 localhost:XXXに表示されるため、最初からIPで登録されていました

eureka.instance.prefer-ip-adderss = true 
eureka.instance.instance-id = $ {spring.cloud.client.ip-address}:$ {server.port}

 

 

上の画像はすべてのIPとポートを示しています。IP登録方法がなくなる前に、localhost:ポートのインスタンスが存在します。理論的には、Feignクライアントはサービスにアクセスするとサービスにアクセスできるはずですが、それは不可能です。インスタンス名の上にマウスを置いて、左下隅を確認します

 

 この画像は、最後の変更後にアクセスできるものであり、正しく表示されます。変更前にここに表示されるlocalhostは、公開されたホスト名が実際のサーバーであることを示しているため、登録時にeurekaサービスにホスト名が与えられますマシンのIPアドレスで十分です。前の構成に基づいて次の構成を追加します

eureka.instance.hostname = $ {spring.cloud.client.ip-address}

 サービスを再起動し、ユーレカに再登録して正常に確認します

おすすめ

転載: www.cnblogs.com/kevin-w/p/12674483.html