在我的项目中,我使用Apache 9服务器作为Maven依赖项。它运行良好,现在我需要添加一个健康端点,以便如果一切正常运行,它将返回200 OK。
我了解了Tomcat 9中的HealthCheckValve (气门)选项,这是很有帮助的。但我无法弄清楚在哪里添加这个和配置这个阀门的过程。正如我所知道的,如果服务器是独立的,我们可以在Server.xml中进行配置,但是由于Tomcat是maven依赖项,所以我不知道应该如何在哪里配置它。
有人能帮助我在Apache 9(作为maven依赖项)中配置健康端点吗?
发布于 2022-09-29 10:46:56
我在Tomcat9.0.x中看到了所有阀门的文档。
为了找到这一具体任务的解决方案,我尝试寻找其他阀门的配置,如嵌入式tomcat中的远程地址阀门。
我在搜索了很多之后,发现了一个解决方案,它是由user967710开发的。
我做了以下工作,在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)在添加阀门时非常重要。
运行端点可以在主机上访问:端口/健康。例如,如果它托管在http://localhost:4000,那么健康端点将是http://localhost:4000/health
这个端点将返回200 OK,带有一个简单的JSON响应,说明Tomcat服务器的状态,即,如果一切都启动并运行,即" up“。
发布于 2022-09-22 22:03:21
查看文档,然后将HealthCheckerValve添加到server.xml中。阀门进入引擎、主机或上下文元素。在与Tomcat一起打包的server.xml中,您可以找到应该指向正确位置的注释。
在嵌入Tomcat版本时,您将无法获得此文件,因此需要以编程方式组装这些容器的实例。
检查本例中的启动程序应用程序:app-tomcat-embedded.html,虽然我找不到像addValve()这样的方法,但我找到了一个init()方法,您可以使用该方法来提供一个将由Tomcat读取的server.xml。
https://stackoverflow.com/questions/73821042
复制相似问题