我们有一个 Spring Boot 应用程序,由我们控制,在给定的开发和生产机器上运行。我们使用“标准”端口号,例如 8080 (Tomcat)、8686 (JMX) 等。我们实际上没有像 Wildfly 或 Glassfish 这样的功能齐全的应用程序服务器。
现在是时候将一些“遗留”代码集成到我们的应用程序中了,并且它需要在应用程序服务器(Glassfish)中运行。当然,现在我们在 8080 和 8686 上遇到了端口冲突(至少如此)。我们无法在 Glassfish 上更改这些端口号(不要问,不要说)。
我的想法是将每个使用的端口号增加 10000,剩下 18080 (Tomcat)、18686 (JMX)、15601 (Hazelcast) 等等。如果我这样做,我是否采取了正确的方法?增加这些端口号是否会遇到任何“问题”(与操作系统随机端口等的其他冲突)?
答案1
在大多数系统上,您的端口号都远低于临时端口范围。这些端口用于出站连接,因此不会造成问题。
通常,您可以自由地将任何端口用于任何目的。使用标准端口可以更轻松地找到应用程序的端口,或者猜测哪种协议适合在端口上进行通信。这通常是最佳选择,但在像您这样的情况下,至少有一个应用程序需要移动。
使用您建议的简单转换效果很好。当您有多种端口时,其他简单的转换是将数字(例如 1、10、100 或 1000)添加到端口号。较小的数字往往会有影响附近端口的风险。1 不适用于使用连续端口的应用程序。
允许您使用现有端口的一个选项是添加额外的 IP 地址。这仅在您可以指定应用程序将绑定到的 IP 地址时才有效。如果您需要一个或两个应用程序的 DNS 条目,请考虑为一个或两个应用程序使用服务名称。