【问题标题】:Zero-downtime deployments with Quarkus使用 Quarkus 进行零停机部署
【发布时间】:2021-03-25 08:21:02
【问题描述】:

Quarkus 很棒,但您无法进行零停机部署,或者您可以吗?

我对 Quarkus 的体验仅限于简单的 RESTful Web 应用程序。在本地运行它作为它自己的容器,没有 Jetty,也不是 Tomcat,所以它自己运行。

问题在于,如果没有被包含在内,例如在应用程序服务器(如提供开箱即用的零停机时间部署的 NGINX 单元)内部署 Quarkus Web 应用程序将非常痛苦,几乎 100% 停机时间,除非您采取一些巧妙的技巧。

我的问题是:你们能否部署基于 Quarkus 且零停机时间的网络应用程序?如果可以,如何?

【问题讨论】:

    标签: java quarkus


    【解决方案1】:

    零停机部署没有“聪明的技巧”。每个人都使用一个简单的原则(我很确定 Nginx 单元也不例外):您在应用程序前面使用负载均衡器。 (听说 Nginx 不错……)

    为了更新,您:

    1. 保持旧版本运行并保持负载均衡器指向它;
    2. 开始新版本;
    3. 当它完全启动时,将负载均衡器上的流量从旧版本重定向到新版本(有多种变体,您可以一次性或逐步重定向流量,可以进行会话耗尽等);
    4. 当旧版本不再使用时,停止并删除它。

    Quarkus 非常适合在 Kubernetes 中运行,它提供开箱即用的零停机部署(使用我上面描述的相同原理)。

    【讨论】:

      猜你喜欢
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2020-03-04
      相关资源
      最近更新 更多