将弹簧执行器的健康状况端点放在不同的地方是好事还是坏事?

问题描述 投票:0回答:2

Based on 48.3 Customizing the management server port

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

具有不同端口供执行器运行状况端点运行的值是什么?在哪种情况下?

通常,所有服务端点的一个端口是否足够好?设置运行状况终结点在不同的实施是否是标准实施?

spring-boot spring-security spring-boot-actuator
2个回答
1
投票

为什么您可能要在其他端口上显示执行器端点,这与应用程序前面的负载均衡器/防火墙有关。

假设您在端口8080上拥有api。您的防火墙将使用端口80,并将流量定向到端口8080。

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

但是为什么将执行器放在不同的端口上,如果您将执行器放在8081上,那么您只能从网络内部访问位于防火墙后面的驱动器(因为防火墙只有80端口开放用于外部连接),而没有另一个人可以检查您的服务的健康状态,内存等,等等。


1
投票

可能有不同的原因,有些是技术原因,有些不是:

  1. 您的安全部门有一个政策,即任何“管理”内容(执行器肯定属于此类)都不能共享应用程序的默认端口。因此,您只是忍受了这一点:)我已经在一家相当大的公司中看到过,所以这不是在开玩笑。

  2. 如果您密集使用执行器(例如通过执行器进行一些集成)-则在tomcat连接器的同一线程池上将有请求,与应用程序必须服务的常规休息请求一样,在这种情况下,您可能更愿意分开。

  3. 您有一些路由请求的网络设备,它可以很容易地禁止最终用户向某个端口发出请求,但不能在URL部分上操作:

http://host:port/api/v1/business-stuff
http://host:port/health
 --> Hard / impossible to configure routing
as opposed to:
http://host:port1/api/v1/business-stuff
http://host:port2/health
 --> easy - open port1 for end users, don't open port2 to the out world

毕竟春季靴子有很多选择,您应该确定最适合您的>]

© www.soinside.com 2019 - 2024. All rights reserved.