当前位置: 首页 > 知识库问答 >
问题:

使Spring Cloud应用程序等待eureka客户端在完全关闭之前删除它

龙安阳
2023-03-14

我们有一个应用程序,它接收来自其他服务的调用,这些服务使用Eureka来发现不同应用程序实例/副本的不同IP地址。

当部署此应用程序的新版本时,我们的部署系统(本例中为kubernetes)会向应用程序的一个实例发送SIGTERM以将其关闭。

但向应用程序发送请求的服务中的Eureka客户端保留了Eureka信息的本地缓存。这意味着这些应用程序不会意识到应用程序的实例已经关闭,它们将继续向不再工作的实例发送请求。

有没有办法让Spring Cloud应用程序在关闭前等待几秒钟,以确保所有客户端都有更新的尤里卡信息(此应用程序不再列出)?

共有1个答案

徐佐
2023-03-14

如果您使用的是Kubernetes,那么您可以将服务映射到向eureka注册的每个应用/服务,并告诉这些应用使用服务名称而不是IP注册。然后,您可以使用Kubernetes管理蓝色/绿色部署(前提是您已经设置了探测器)。然后,Eureka将只知道服务名称以及是否为它们注册了内容,Kubernetes将在升级期间管理可用性。这有点像混合型的。

如果您要删除应用程序或更改名称而不是升级,那么我认为您需要为eureka注册数据设置租赁时间。尤里卡从不注销服务

 类似资料:
  • < b >想改进这个问题?更新问题,使其成为关于堆栈溢出的主题。 我正在尝试从我的ubuntu 12.04中完全卸载mysql。但无法。 我尝试了很多命令。但没有任何效果。任何人都可以在这里帮忙! 我不明白该怎么做。我想删除有关MySQL的所有内容。每当我试图定位它时。我明白了。 我希望一切都被删除。mysql服务器、mysql客户端、mysqls库甚至配置。 请帮帮我!!!

  • 我看到了一个奇怪的问题。NET client for MongoDB抛出了一个

  • 我尝试使用npm中名为eureka-js-client的依赖项,但它总是报告404。我查看了netflix云文档,看到来自Node.js的日志,并看到该服务试图通过URL注册: 虽然eureka服务器位于该端口,但当我试图通过邮递员ping URL时,我总是得到404。我也尝试,但也得到了404。当我通过浏览器转到时,我仍然会得到标准的eureka仪表板,并且所有Spring Boot(eurek

  • 我有一些文件要上传,有些文件失败了,因为帖子是异步的,而不是同步的。 我正在尝试将此调用作为同步调用。 我想等回应。 如何将此调用设为同步调用? 任何帮助感谢!

  • 问题内容: 背景 我正在客户端使用HTTP流(服务器推送)情况下的响应。尽管服务器可以通过关闭响应来关闭连接,但是客户端也需要这样做。 问题 客户端在一个单独的线程中处理,如下所示: 因此,当我从发起连接的线程进行调用时(重要的信息是它与处理输入的线程不同),该调用将无限期挂起。我什至把它留了一夜,它仍然挂着。即使打电话也无济于事。 有什么建议吗? 问题答案: 在没有可用字节的情况下,如果不更改读

  • 本文向大家介绍SpringCloud Eureka的使用教程,包括了SpringCloud Eureka的使用教程的使用技巧和注意事项,需要的朋友参考一下 什么是Eureka Eureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。 为什么要有Eureka 例如目前有两个服务分别为服务A,服务B,我们可以在服务A调用服务B的接口地址完成调用,