【问题标题】:How to add health endpoint in Apache Tomcat 9?如何在 Apache Tomcat 9 中添加健康端点?
【发布时间】:2022-09-29 18:46:56
【问题描述】:

我在我的项目中使用 Apache Tomcat 9 服务器作为 Maven 依赖项。它工作正常,现在我需要添加一个健康端点,这样如果一切运行正常,它将返回 200 OK。

我开始了解 Tomcat 9 中的 HealthCheckValve (https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Health_Check_Valve) 选项,这很有帮助。但我无法弄清楚在哪里添加这个以及配置这个阀门的过程。据我所知,如果服务器是独立的,我们可以在 Server.xml 中进行配置,但由于 Tomcat 服务器是一个 Maven 依赖项,我不知道我应该如何以及在哪里配置它。

有人可以帮我在 Apache Tomcat 9 中配置健康端点(作为 Maven 依赖项)吗?

    标签: java tomcat tomcat9 embedded-tomcat


    【解决方案1】:

    查看documentation,然后将HealthCheckerValve 添加到server.xml。阀门进入引擎、主机或上下文元素。在与 Tomcat 一起打包的 server.xml 中,您可以找到应该将您引导到正确位置的 cmets。

    当嵌入 Tomcat 的某个版本时,您将无法获得该文件,因此您需要以编程方式组装这些容器的实例。

    检查此示例中的启动器应用程序:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/basic_app_embedded_tomcat/basic_app-tomcat-embedded.html 虽然我找不到像 addValve() 这样的方法,但我找到了一个 init() 方法,您可以使用它来提供一个将由 Tomcat 读取的 server.xml。

    【讨论】:

    • 感谢您的指导和链接。这些很有用。
    【解决方案2】:

    我看到了 Tomcat 9.0.x 中所有可用阀门的documentation。

    为了找到这个特定任务的解决方案,我尝试在嵌入式 tomcat 中寻找其他阀门的配置,例如远程地址阀门。

    经过大量搜索后,我找到了user967710 的solution。

    我执行以下操作以向我的 Tomcat 9.0.64 添加一个健康检查阀:

            Tomcat tomcat = new Tomcat();
    
            tomcat.getEngine().setName(UUID.randomUUID().toString());
    
            tomcat.setPort(context.port);
    
            tomcat.setHostname(context.hostname);
            tomcat.getHost().setAppBase(".");
            
            Valve valve = new HealthCheckValve();
            
            tomcat.getHost().getPipeline().addValve(valve);
    
    

    如何为项目配置 Tomcat 并不重要,即从第 1 行到第 5 行,但实际上最后 2 行,即第 6 行和第 7 行在添加阀门的地方很重要。

    健康端点可以通过 host:port/health 直接访问。 例如,如果它托管在 http://localhost:4000 那么健康端点将是 http://localhost:4000/health

    此端点将返回 200 OK 并带有一个简单的 JSON 响应,说明 Tomcat 服务器状态,即“UP”,如果一切都已启动并正在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 2020-05-29
      • 2019-08-28
      • 2017-05-18
      相关资源
      最近更新 更多