为了账号安全,请及时绑定邮箱和手机立即绑定

短暂不活动后 Openshift 服务不可用

短暂不活动后 Openshift 服务不可用

人到中年有点甜 2023-08-23 10:37:05
我们的项目托管在 OpenShift 中(准确地说,OKD。我们自己托管)。设置如下:路由服务器(带有 Zuul 的 Spring Boot 1.5.8):该服务器获取所有传入流量并将其路由到正确的服务多个服务(全部使用 Spring Boot):这是所有业务逻辑我们在这个项目中使用 SOAP 来调用其他服务。目前,当我们调用应用程序时,调用会转到路由服务器,然后路由服务器将其路由到主要业务服务。经过大约一小时的短暂不活动后,我们的主要业务服务无法通过外部呼叫访问。然而,边缘服务器在 100% 的时间内可用且可调用。当我们调用它时,我们确实会504 Gateway Timeout从系统中得到一个异常。我们已经算出这是openshift中的路由超时(haproxy.router.openshift.io/timeout在路由中)。核心问题是,OpenShift 似乎在闲置约一小时后休眠了主要业务服务。然而,在 15 分钟的延迟后,呼叫似乎找到了目的地,并且数据得到了正确的处理。我们怎样才能关闭这种行为?编辑1:我们在生产中的普通“老式”虚拟机中也有相同的应用程序。我们在那里没有任何问题。我们注意到,当我们定期调用服务时,它们可以“保持活动状态”。我们构建了一个定期调用主题的小型服务(每 15 分钟一次)。这样看来是可行的。但这不是一个可用于生产的解决方法。编辑2:我们的 pod 配置(有些名称是匿名的):https://gist.github.com/moritzluedtke/6867499b0acbb2d7b5a9a70e49b0d45c我们不使用自动缩放器。编辑3:我们的部署配置(有些名称是匿名的):https://gist.github.com/moritzluedtke/dc7c1078fe9cc7e4aeb737094849fc1bOpenShift Master:      v3.11.0+1c3e643-87 Kubernetes Master:     v1.11.0+d4cacc0 OpenShift Web Console: v3.11.0+ea42280编辑4:看来这不是 OpenShift 的问题,而是我们的技术堆栈的问题。一旦我们有解决方案,我会更新这个问题。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

我们最终更新了数据库驱动程序(POSTGRESQL)并从 spring 切换了默认连接池。


pom.xml:


<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-jpa</artifactId>

    <exclusions>

        <exclusion>

            <groupId>org.apache.tomcat</groupId>

            <artifactId>tomcat-jdbc</artifactId>

        </exclusion>

    </exclusions>

</dependency>

<dependency>

    <groupId>com.zaxxer</groupId>

    <artifactId>HikariCP</artifactId>

    <version>${HikariCP.version}</version>

</dependency>


查看完整回答
反对 回复 2023-08-23
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信