我正在维护几个Spring Boot web服务应用程序(war),它们目前运行在四个相同的Tomcat实例上。
前面的一个负载均衡器使得shure trafic分布在四个实例中。
我们做手动滚动部署。
在取下一个实例进行升级之前,我们会转移新的流量。然后,在终止应用程序之前,我们给活动请求两分钟的宽限期。
通过谷歌搜索帮助,我找到了一个基于以下基础的解决方案:
一开始这似乎是有效的,但事实证明livenes探测器有时会踢进并杀死吊舱,即使关闭吊钩还没有完成。
如果我移除livenes探针,它可以工作,但我不认为这是一个真正的解决方案。
实验告诉我,一旦ShutdownHook暂停Tomcat连接器,执行器/健康endpoint就会以“Connection Refired”响应--这是有道理的,但不是我需要的,因为它会使活跃度探测器认为应用程序已死亡。
我已经尝试将执行器endpoint移动到另一个端口号,但这更糟,因为它们现在会在关闭开始时立即停止响应。
我假设这是由于执行器endpoint现在属于与主连接器不同的Tomcat连接器,并且不在主Spring应用程序上下文的控制下造成的。
你们谁能告诉我,在单独的端口号上时,如何停止执行器endpoint的关闭?
或者任何其他建议--允许我:
如果您只想防止通信流在pod执行正常关闭时到达pod,您可以使用低就绪探测超时,当故障发生时,它将从可用pod列表中删除您的pod。然后增加你的活性探测超时,让你的吊舱有足够的时间优雅地关闭,同时仍然有一个后退,以防你的吊舱真的被卡住了。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-livenesse-readity-probes/#define-readity-probes
我有一个Spring Boot应用程序,它有一些外部依赖(例如,项目之外的文件,需要存在,以便应用程序正确启动)。 和一系列其他例外。有没有一种方法可以恰当地做到这一点?
询问代码的问题必须证明对所解决问题的理解程度最低。包括尝试的解决方案、为什么不起作用以及预期的结果。另请参见:堆栈溢出问题检查表 我敢肯定,上面的程序不是无限循环的。我用进行了测试,得到了想要的结果 我不明白为什么我的CPU要花很长时间来运行它。 编辑:ProjectEuler的我的代码。网络问题3。
我可以通过firebase FCM打开活动,但这只适用于android
我只是在我的一个android应用程序上实现admob。我请求admob在应用程序菜单屏幕上显示间隙广告。但在那个时候,如果我退出应用程序
问题内容: 我在询问用户名和密码时有一个小框。单击主窗口中的按钮将打开该框架。 然后,我有两个按钮:确定和取消。 当我单击“取消”按钮时,我需要关闭此框架而不退出应用程序。 我怎样才能做到这一点? 问题答案: 您可以使用Frame.hide()或Frame.dispose()。我还建议研究JDialog或JOptionPane 更正:hide()已过时。应该使用SetVisible(false)代
当用户在我的通知中单击一个按钮时,我正试图打开,而该应用程序仅在后台运行并提供服务。单击按钮时,这些行在类中被触发: 我已经检查过了,这些行被触发了,所以对按钮的点击做出反应没有问题,但是不会打开。 有什么建议吗?为什么这对我不起作用,我怎么能让它起作用? 我被要求提供更多的代码,因此在我的