风景:
我们有两个微服务的应用程序。
Micro Service A用于在集群外部公开应用程序(我们的Web服务器)
Micro Service B是我们的业务功能。
我们在Micro Service A前面有一个F5来处理硬编码端口(onPrem)上的负载平衡。
问题: 我们目睹有时Micro Service B(业务功能)可能会窃取Micro Service A硬编码使用的端口。然后它将永远不会正确启动服务。
我们还看到SF似乎按顺序使用可用端口。因此,如果我们硬编码微服务A使用端口001和微服务B是随机的。当A重新启动时,B有时会抓住001。
可能的解决方案:
请给我一个很好的选择4:)
谢谢,
格雷格
答案 0 :(得分:2)
如果您具有此缩放级别,则最佳方法是使用节点类型来处理与内部分开的外部访问。
您将创建一个FrontEnd NodeType来托管暴露硬编码端口的API或WebServices(即:80,443),然后创建BackEnd NodeType以使用随机端口托管您的服务。使用这种方法,您不必担心端口,因为服务将根据其角色在不同节点上运行,并且只能从群集外部访问FE。
如果仍需要在相同节点内处理此问题,则可以使用节点类型配置"应用程序启动端口" &安培; "应用程序结束端口"这将处理您的服务将在开始时分配给的端口列表。 因此,您可以对这些列表外的端口进行硬编码,并让BE服务使用应用程序端口中的列表,就像您在第3个选项中建议的那样。
确保在负载均衡器上配置了硬编码端口,否则无法从群集外部访问它们。