首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring应用程序中配置打开端口的时间

在Spring应用程序中配置打开端口的时间
EN

Stack Overflow用户
提问于 2021-08-06 08:11:30
回答 1查看 275关注 0票数 1

问题:当spring准备好处理流量时,在spring或它的嵌入式servlet容器中有打开端口的选项吗?

情况:在当前的设置中,我使用一个在google运行中运行的spring引导应用程序。

Circumstances:

  • 云运行不支持活动/就绪探测,它将开放端口视为“应用程序就绪”。
  • Cloud向容器发送请求,尽管spring还没有准备好处理请求。
  • Spring启动它的servlet容器,打开它的端口,同时仍然旋转它的bean。

问题:对未准备好的应用程序的流量将导致大量http 429状态代码。

这影响到:

  • 新部署
  • 云运行的扩展能力

我的愿望:

  1. 将spring/servlet容器配置为在应用程序实际准备就绪时延迟打开端口,将打开端口延迟到应用程序准备好的时候,可以减轻很多痛苦,而不会对现有的代码库造成太多干扰。
  2. 有没有别的办法不会造成太大的痛苦?
  3. 我发现并认为不可行的东西
代码语言:javascript
复制
- Using [native-image](https://github.com/spring-projects-experimental/spring-native) is not an option as it is considered experimental and consumes more RAM at compile time than our deployment pipeline agents allow to allocate (max 8GB vs needed 13GB)
代码语言:javascript
复制
- another answer i found: [readiness check for google cloud run - how?](https://stackoverflow.com/questions/56348839/readiness-check-for-google-cloud-run-how) which i don't see how it could satisfy my needs, since spring-boot startup time is still slow. That's why my initial idea was to delay opening ports

我没有时间测试以下内容,但我偶然发现的一件事是

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 09:10:29

正如您非常清楚的那样,“Cloud目前还没有准备就绪/活性检查以避免向未准备好的应用程序发送请求”,我要说的是,在Cloud Run的一侧除了:

  • 根据文档尝试和优化Spring引导应用程序
  • 在云运行服务中创建一个更重的入口点,以处理更多的设置任务。这个stackoverflow线程提到“一个‘较重的’入口点将如何帮助部署后响应,而代价是较慢的冷启动”(从云运行的角度来看,这是最相关的解决方案,并正确地概述了问题)。
  • 正如您提到的,云中的在容器中运行多个进程正在运行。

这个问题似乎更直接地针对Spring,我发现了一个具有类似需求的文章。但是,如果您绝对需要该应用程序随时准备服务时,请求进来,我们有另一个替代云运行,Google Kubernetes Engine (GKE),它利用准备状态/活性探测

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68678300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档