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

ShardingSphere 4.x オーケストレーション・ガバナンスのためのSharding-JDBCユーザーマニュアル

ガバナンス機能を使うには、設定センターとレジストリを指定する必要があります。コンフィギュレーションはすべてコンフィギュレーションセンターに保存され、起動ごとにローカルコンフィギュレーションを使ってコンフィギュレーションセンターのコンフィギュレーションを上書きすることも、コンフィギュレーションセンターを通してコンフィギュレーションを読み込むこともできます。\nSpringを使用しない場合\nMaven依存関係の導入\n&lt;depen

Jul 10, 2020 · 4 min read