blog

Eurekaアクティブ・オフライン・サービス

をフックに加えることで、サービスを直接停止することができます。 デフォルトでは、Eureka Serverは90秒以内にEurekaクライアントから更新を受け取らなかった場合、インスタンスをレジストリ...

Jul 10, 2020 · 2 min. read
シェア

.リアルタイム・オフライン・サービス

  1. サービスを直接停止します。デフォルトでは、Eureka Serverが90秒以内にEurekaクライアントから更新を受け取らなかった場合、インスタンスをレジストリから削除します。しかし、この方法の悪い点は、クライアントの実行が停止しているにもかかわらず、レジストリにリストされたままになっていることです。 特定のロードバランシングポリシーやヒューズを使用してサービスを継続することは可能ですが、サービスがオフラインになったことをレジストリにすぐに知らせる方法はありますか?

  2. eurekaレジストリに削除リクエストを送信します。

postmanを使った削除リクエストの開始

http://...:///-/:-:31

注意:Eurekaクライアントは、レジストリにハートビートを送信し、頻繁に契約を更新します。このようにしてオフラインになったサービスが、時間内に停止しなかった場合、そのサービスはすぐにサービスのリストに戻ります。

そのため、サービスを停止してから、リストから削除するリクエストを送ることができます。

  1. クライアントがレジストリのオフラインをプロアクティブに通知

eurekaクライアントがSpringBootアプリケーションの場合、以下のコードを呼び出すことでレジストリがオフラインになることを通知できます。をフックすることでグレースフル・シャットダウンを実装できます。

DiscoveryManager.getInstance().shutdownComponent();

@RestController public class HelloController { @Autowired private DiscoveryClient client; @RequestMapping(value = "/hello", method = RequestMethod.GET) public String index() { java.util.List<ServiceInstance> instances = client.getInstances("hello-service"); return "Hello World"; } @RequestMapping(value = "/offline", method = RequestMethod.GET) public void offLine(){ DiscoveryManager.getInstance().shutdownComponent(); } }
Read next

nginxの設定 wss

これは、私がプロジェクトで遭遇した問題です。念のため、wssの構成1.ページドメインポートは、実際に作成されたwsサーバーアドレスですke

Jul 10, 2020 · 2 min read