您现在可以在 v5.5 版本中执行哪些操作,以及下一个版本中将要执行的操作。
对于 v5.5 版本,
此 GitHub 存储库https://github.com/Azure-Samples/service-fabric-dotnet-containers展示了如何在 Windows 容器之间进行通信,您可以使用 PortBinding 将主机端口映射到容器上的私有端口应用程序清单中的策略。
然后,您可以通过 REST 称为命名服务(这就是此示例所做的)或如您所说的那样更容易与具有 URL 格式的 ReverseProxy 进行通信。如果两个容器都部署在同一台机器上,则通信是通过本地 ReverseProxy 进行的,并且您可以在容器之间进行本地调用。请参阅https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy。正如 Mikkel 指出的那样,您必须通过放置约束告诉 Service Fabric 您希望容器位于同一 VM 上。
注意:要让上面的 GitHub 示例在您的本地计算机上运行,您需要更新 C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\FiveNode 文件夹中的本地开发清单 ClusterManifestTemplate.xml,并将IPAddressOrFQDN属性从“localhost”到它运行的机器的实际IP。这是由于上面的 git 存储库中记录的 Windows Server 网络错误。IE
<Node NodeName="_Node_0" IPAddressOrFQDN="ComputerFullName" IsSeedNode="true" NodeTypeRef="NodeType0" FaultDomain="fd:/0" UpgradeDomain="0" />
变成
<Node NodeName="_Node_0" IPAddressOrFQDN="192.1.3.50" IsSeedNode="true" NodeTypeRef="NodeType0" FaultDomain="fd:/0" UpgradeDomain="0" />
即将发布 v5.6
在下一个版本中,我们在命名服务之上添加了一个 DNS 服务器,以便您可以使用 DNS 名称代替反向代理使用的 fabric:/ 名称。这意味着在 Service Fabric 群集中,您可以改为使用http://[domainname]/path调用在容器之间进行调用。相同的规则适用于与反向代理相同的机器上的本地容器之间的调用。