Microservices 服务结构-如何保留或保护我的硬编码端口

Microservices 服务结构-如何保留或保护我的硬编码端口,microservices,azure-service-fabric,service-fabric-on-premises,Microservices,Azure Service Fabric,Service Fabric On Premises,景观: 我们有一个带有两个微服务的应用程序 微服务A用于在集群外公开应用程序(我们的web服务器) 微服务B是我们的业务功能 我们在微服务A前面有一个F5来处理硬编码端口(onPrem)上的负载平衡 在微服务A中,我们在清单中为http端点硬编码特定端口 问题: 我们看到,有时微服务B(业务功能)可能会窃取微服务A硬编码使用的端口。那么它将永远无法正确启动服务 我们还看到SF似乎按顺序使用可用端口。因此,如果我们硬编码微服务A使用端口001,微服务B是随机的。当A重新启动时,有时B会抓取001

景观:

  • 我们有一个带有两个微服务的应用程序

    微服务A用于在集群外公开应用程序(我们的web服务器)

    微服务B是我们的业务功能

  • 我们在微服务A前面有一个F5来处理硬编码端口(onPrem)上的负载平衡

  • 在微服务A中,我们在清单中为http端点硬编码特定端口
  • 问题: 我们看到,有时微服务B(业务功能)可能会窃取微服务A硬编码使用的端口。那么它将永远无法正确启动服务

    我们还看到SF似乎按顺序使用可用端口。因此,如果我们硬编码微服务A使用端口001,微服务B是随机的。当A重新启动时,有时B会抓取001

    可能的解决方案:

  • 我们可以硬编码所有的微服务-不喜欢它
  • 我们可以为这些硬编码端口保留更高的范围。例如,如果服务结构使用1000个端口,我们可以为服务A保留501-1000,让服务B获取001-499。这只会延迟问题,直到您有500多个实例。-我也不怎么喜欢这个
  • 将端口硬编码为群集范围之外的端口?例如,如果我们在设置集群时使用20001-20500作为ApplicationEndpoints范围,如果我们将微服务硬编码为用户21000,它似乎可以工作吗?我不确定这会造成什么意外后果
  • 请给我一个很好的选择4:)

    谢谢


    Greg

    当您具有此级别时,最好的方法是使用节点类型来处理外部访问和内部访问

    您将创建一个前端节点类型来承载暴露硬编码端口(即:80443)的API或Web服务,然后创建后端节点类型以承载具有随机端口的服务。使用这种方法,您不必担心端口,因为服务将根据其角色在不同的节点上运行,并且只有FE可以从集群外部访问

    如果仍然需要在相同的节点内处理此问题,则可以使用节点类型配置“应用程序启动端口”和“应用程序结束端口”,该配置将处理服务在启动时分配给的端口列表。 因此,您可以在这些列表之外硬编码端口,并让服务使用应用程序端口列表,就像您在第三个选项中建议的那样


    确保在负载平衡器上配置了硬编码端口,否则它们将无法从集群外部访问。

    当您具有此扩展级别时,最好的方法是使用节点类型来处理外部访问和内部访问

    您将创建一个前端节点类型来承载暴露硬编码端口(即:80443)的API或Web服务,然后创建后端节点类型以承载具有随机端口的服务。使用这种方法,您不必担心端口,因为服务将根据其角色在不同的节点上运行,并且只有FE可以从集群外部访问

    如果仍然需要在相同的节点内处理此问题,则可以使用节点类型配置“应用程序启动端口”和“应用程序结束端口”,该配置将处理服务在启动时分配给的端口列表。 因此,您可以在这些列表之外硬编码端口,并让服务使用应用程序端口列表,就像您在第三个选项中建议的那样


    确保在负载平衡器上配置了硬编码端口,否则它们将无法从集群外部访问。

    Hmm,好的。我无法获得更多VM(节点)但我可以将另一个IP添加到现有VM。我可以在现有VM的第二个IP上设置第二个节点类型吗?我知道这是第二个问题,但与之相关。如果找到它,我将进行搜索并发布链接。嗯,好的。我无法获得更多VM(节点)但我可以在现有虚拟机上添加另一个IP。我可以在现有虚拟机上的第二个IP上设置第二个节点类型吗?我知道这是第二个问题,但它是相关的。如果我找到它,我会进行搜索并发布链接。除此之外,还有其他人有什么想法吗?我需要在接下来的24小时内做出决定,我想知道是否有ot她的解决方案。谢谢,除此之外还有其他人有什么想法吗?我需要在接下来的24小时内做出决定,我想知道是否还有其他解决方案。谢谢,