从 Internet 访问 Azure Service Fabric 应用程序

Access Azure Service Fabric application from internet

我想我遗漏了一些表面上的东西。 我在 Azure 中创建了 SF 集群。它有一个负载均衡器和一个具有 3 个 VM(节点)的网络,其 IP 地址为 10.0.0.0/16。

当我向负载均衡器询问应用程序端点时,它会使用节点 IP 地址进行响应。 (我是用WireShark抓包的)但是我不能访问它,因为网络是私有的。

关于我的案例的更多信息:3xA0 实例,net.tcp:20001 端点,防火墙允许连接,端口打开和侦听,我有 public IP 地址分配给平衡器,探测服务港口。

在您的负载均衡器上,您需要分配一个 public IP 地址。为此,您可以在 documentation 中找到一些非常好的详细指南。

好的,给你:

当您想从集群外部与服务通信时 - 只需使用负载均衡器 IP,您不需要命名服务器通信。负载均衡器有可能检查集群中每个节点上的端口,并将您的请求转发到具有您所请求服务的随机实例。

当您想在集群中将一个微服务与另一个微服务通信时,那么您有 2 个选择:

  1. 通过负载均衡器询问命名服务,然后直接与该服务通信。
  2. 如果您确定该服务应该在集群中的每个节点上 - 您可以直接与本地主机通信。

当你想在集群的虚拟网络中从单独的虚拟机与集群中的微服务进行通信时(你可以使用 vpn 将 WebApp 连接到集群)那么你可以询问命名通过负载均衡器提供服务,但使用 Service fabric HTTP API,因为您将无法在未安装 Service Fabric SDK 的 VM 上使用 service fabric 类。这是服务解析的示例:https://github.com/lAnubisl/ServiceFabricHttpApiClient