0

我有一个带有两个应用程序的 ServiceFabric。On 应用程序从 ServiceFabric 外部调用,然后向 ServiceFabric 内的其他应用程序发出 HTTP 获取请求。

我的第一次尝试是使用 ServiceFabric 的反向代理 IP 寻址第二个应用程序,与第一个应用程序的寻址相同:

http://10.0.0.1:19081/App2/App2.Service/

这导致 ServiceFabric 内部的通信不可靠,第一个请求总是失败,而第二个请求大部分成功。

然后我在https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy阅读了有关内部 ServiceFabric 通信的信息。现在我使用 localhost 处理我的第二个应用程序,它似乎按预期工作:

http://localhost:19081/App2/App2.Service/

唯一悬而未决的问题是:使用 localhost 寻址 ServiceFabric 内的应用程序是否仅因为应用程序也在同一节点上运行而起作用?还是因为存在真正的反向代理行为而起作用,即使应用程序不在同一个节点上运行,请求也会到达它?

4

1 回答 1

1

反向代理在所有节点上运行,因此可以随时在 localhost 上访问它。它将您的呼叫转发到第二个服务,该服务会自动解决。

您还可以使用内置的DNS服务来解析内部服务。这样,您可以节省一些反向代理的开销。与使用 ip 地址相反,您不需要知道服务是在 localhost 上运行还是在不同的节点上运行。此外,如果您的服务在运行时移动,您也不会遇到麻烦。

于 2018-12-18T13:04:27.920 回答