【发布时间】:2023-03-19 22:21:01
【问题描述】:
我将 Curator 服务发现与 Spring MVC 休息控制器一起使用,其中每个控制器在 @PostConstruct 中向 ZooKeeper 注册自己,并在 @PreDestroy 中取消注册自己。
我遇到的问题是,在调用 @PreDestroy 方法时,控制器已经不再为请求提供服务。我需要在控制器停止服务请求之前取消注册控制器,以避免在控制器停止和取消注册之间发生的少量请求引发异常。
我已经尝试过 spring ApplicationListener 接口、SmartLifecycle 和 ServletContextListener,并且在所有与关闭/关闭相关的挂钩中,控制器已经停止服务请求。
我需要一个关闭挂钩,以便在控制器停止服务请求之前取消注册,但我不确定是否有可用的挂钩。
【问题讨论】:
-
...那么问题是什么?
-
问题是我需要一个关闭钩子,我可以在控制器停止服务请求之前 取消注册,但我不确定它是否可用。
-
啊,我明白了。您能否在问题本身中澄清这一点?目前,它只是对情况的描述,没有明确的需求。
-
你没有使用Spring Cloud吗?我试图弄清楚 Spring Cloud 是如何管理它的。当我杀死一个服务时,它最终会从 Zookeeper 中删除,但只是在 10-12 秒之间,在此期间,请求将失败。我无法弄清楚该过程是如何发生的,以便在部署期间对其进行改进
标签: spring spring-mvc apache-curator