2016-11-25 137 views
1

我想我错过了表面上的东西。 我在Azure中创建了SF群集。它有一个负载均衡器和一个包含3个虚拟机(节点)的网络,其IP地址为10.0.0.0/16。从互联网访问Azure服务结构应用程序

当我要求应用程序端点的负载均衡器时,它会响应节点IP地址。 (我用WireShark捕获数据包)但我无法访问它,因为网络是私有的。

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

回答

0

确定这里是:

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

当你想在集群内一个微服务传达给另一那么你有2种选择:

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

当你想从不同的虚拟机集群中的集群的虚拟网络内传达给微服务(可以连接Web应用程序使用VPN集群),那么你可以要求通过负载均衡命名服务,但使用服务fabric HTTP API,因为您将无法使用虚拟机上的服务结构类,因为它没有安装Service Fabric SDK。以下是解决服务的一个示例:https://github.com/lAnubisl/ServiceFabricHttpApiClient

1

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

+0

我的负载均衡器具有公共IP地址。我可以访问它,它会以节点的端点响应我。我有文档中的探针和其他内容。问题是,我的虚拟机没有公共IP地址,负载均衡器只是回复我应该在哪里连接(它希望我直接连接到节点)。我期待它会通过交通。 – Anubis

+0

这是正确的,你不想让你的虚拟机拥有公共IP地址。您是否尝试过配置负载均衡规则的直接返回?我们需要为SQL AAG执行此操作。 –

+0

是的。我的平衡规则有前端IP地址=负载平衡器公共IP,协议= TCP,端口=我的服务端口,后端池=我VM可伸缩性组,探测,会话持续=客户端IP,浮动IP =真。我的客户端应用程序显示“无法连接到10.0.0.5:20001/.....” – Anubis

相关问题