我想我错过了表面上的东西。 我在Azure中创建了SF集群。它有一个负载均衡器和一个有3个虚拟机(节点)的网络,其IP地址为10.0.0.0/16。
当我向应用程序端点询问负载均衡器时,它会响应节点IP地址。 (我使用WireShark捕获数据包)但我无法访问它,因为网络是私有的。
关于我的案例的更多信息:3xA0实例,net.tcp:20001端点,防火墙允许连接,打开和侦听的端口,我有分配给平衡器的公共IP地址,探测服务端口。
答案 0 :(得分:1)
在您的负载均衡器上,您需要分配一个公共IP地址。您可以在documentation中找到一些非常好的详细指南。
答案 1 :(得分:0)
好的就是这样:
当您想要从群集外部与服务进行通信时 - 只需使用负载均衡器IP,您就不需要命名服务器通信。负载均衡器有probs可以检查集群中每个节点上的端口,并将您的请求转发给您正在询问服务的随机实例。
如果您想在群集中将一个微服务与另一个微服务进行通信,那么您有两个选择:
当您想要从群集的虚拟网络中的单独vm与群集中的微服务进行通信时(您可以使用vpn将WebApp连接到群集),那么您可以通过负载均衡器询问命名服务但是使用Service Fabric HTTP API,因为您无法在未安装Service Fabric SDK的VM上使用服务结构类。以下是服务解析的示例:https://github.com/lAnubisl/ServiceFabricHttpApiClient