当前位置: 首页 > 知识库问答 >
问题:

暴露Spring执行器健康endpoint不同是好事还是坏事?

锺离良哲
2023-03-14

基于48.3定制管理服务器端口

使用默认HTTP端口公开管理endpoint对于基于云的部署是一个明智的选择。但是,如果您的应用程序在您自己的数据中心内运行,您可能更愿意使用不同的HTTP端口公开endpoint。

有一个不同的端口让执行器健康endpoint运行的价值是什么?在什么样的场景下?

通常,一个端口用于所有服务endpoint是否足够好?在另一个上实现设置健康endpoint是否为标准实现?

共有1个答案

欧阳俊逸
2023-03-14

为什么要在不同的端口上公开执行器endpoint,这与应用程序前面的LoadBalancer/Firewall有关。

假设您在端口8080上有api。您的防火墙将接收端口80,并将通信引导到端口8080。

为什么我们不直接在spring应用程序上公开端口80?在linux中,打开端口1024或更低的端口需要root帐户,这是因为下面的端口是敏感端口。原因之一是您不想以root用户身份运行应用程序。

但是为什么在不同的端口上执行器呢?如果你在8081上有执行器,那么你只能从你的网络内部,防火墙后面(因为防火墙只有端口80为外部连接打开)访问这些执行器,没有其他人可以检查你的服务的健康状态,内存等等。

 类似资料:
  • 我正在使用spring Boot2.0.4,并希望公开我的执行器endpoint。当向application.yml仅添加以下信息时,健康状况将被公开。 当我运行http://localhost:8080/acturet时,我会得到

  • {“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?

  • 我试图在我的spring boot应用程序中公开/actuator/healthendpoint,但我的日志表明没有公开任何endpoint。我看过一些文档,其中指出健康endpoint是默认启用的唯一endpoint,但它为我返回404。 从应用程序启动的日志: 访问 /actuator 还显示未公开任何endpoint: 我看了其他几个类似的帖子,但是没有一个补丁对我有效。我在@RestCon

  • 我正在使用SpringBoot执行器返回应用程序的运行状况。 我看到了下面的回复 我想返回一个类似于下面的响应 有办法做到吗?

  • 但我想要一些我可以调用从AWS弹性负载均衡器/自动缩放组。默认情况下,如果一个实例未通过健康检查,ELB/ASG将终止它并用一个新的实例替换它。问题是一些健康检查,如DataSourceHealthIndicator,会在数据库关闭时向下报告,但我的应用程序实例在其他方面是完全健康的。如果我使用默认行为,AWS将抛出完全正常的实例,直到数据库重新启动,这将导致我的账单增加。 我可以去掉DataSo

  • 我应该做什么来获取其他endpoint,比如:度量、bean、缓存等?