Java zookeeper连接丢失后关闭Spring启动应用程序

Java zookeeper连接丢失后关闭Spring启动应用程序,java,spring-boot,apache-zookeeper,shutdown,Java,Spring Boot,Apache Zookeeper,Shutdown,我正在集群zookeeper设置中运行spring引导应用程序。我使用leader election来确保只有一个springboot应用程序实例正在运行。一旦引线下降,另一个节点(跟随者)将占据引线并开始该过程。如果由于我们关闭了应用程序导致leader宕机,那么新的leader可以运行。但是,如果网络与领导者一起丢失,那么旧领导者中的流程仍将运行,新领导者也将运行。因此,将运行两个实例。有没有办法停止旧leader中的应用程序?还是我问错了问题。我对springboot和zookeeper是

我正在集群zookeeper设置中运行spring引导应用程序。我使用leader election来确保只有一个springboot应用程序实例正在运行。一旦引线下降,另一个节点(跟随者)将占据引线并开始该过程。如果由于我们关闭了应用程序导致leader宕机,那么新的leader可以运行。但是,如果网络与领导者一起丢失,那么旧领导者中的流程仍将运行,新领导者也将运行。因此,将运行两个实例。有没有办法停止旧leader中的应用程序?还是我问错了问题。我对springboot和zookeeper是新手。如果我错了,请纠正我

您可以使用
弹簧启动执行器执行此操作。它有一个
/shutdown
端点,它完全按照tin上的说明执行。注意:默认情况下未启用此端点,因此需要通过在
应用程序中设置以下属性来启用它

endpoints.shutdown.enabled=true
您可能也想为此配置一些安全性,因为让任何人关闭您的应用程序都不是一个明智的想法

有关更多信息,请参阅