Azure服务结构应用程序-主机名和主机IP地址
从Azure service fabric应用程序如何获取为当前请求提供服务的节点的主机名和主机IP地址?请提出建议。SF可提供这些建议:Azure服务结构应用程序-主机名和主机IP地址,azure,azure-service-fabric,azure-vm-scale-set,Azure,Azure Service Fabric,Azure Vm Scale Set,从Azure service fabric应用程序如何获取为当前请求提供服务的节点的主机名和主机IP地址?请提出建议。SF可提供这些建议: Fabric\u NodeIPOrFQDN-集群清单文件中指定的节点的IP或FQDN。(例如本地主机或10.0.0.1) Fabric\u NodeName-运行进程的节点的节点名(例如\u node\u 0) 假设您使用的是C#,那么您可以通过environment.GetEnvironmentVariable获取环境变量,然后使用环境变量可以使用该类
-集群清单文件中指定的节点的IP或FQDN。(例如本地主机或10.0.0.1)Fabric\u NodeIPOrFQDN
-运行进程的节点的节点名(例如\u node\u 0)Fabric\u NodeName
假设您使用的是C#,那么您可以通过
environment.GetEnvironmentVariable
获取环境变量,然后使用环境变量可以使用该类。它有一个NodeContext
属性,其中包含几个有趣的属性。在您的服务中,您可以获得如下所示的fqdn/ip地址:
var address = Context.NodeContext.IPAddressOrFQDN;
如果节点名与机器名无关,那么它是一个逻辑名。节点名称可以是用户定义的名称。我认为
Environment.MachineName
或Context.NodeContext.IPAddressOrFQDN
最准确。请添加更多详细信息。正在运行的工作负载。我们是在谈论使用service fabric SDK(有状态/无状态服务或参与者模型)的.net应用程序吗?我们正在Azure SF群集上部署.net无状态服务作为工作负载。@LoekD根据您的上述答复,我假设在service fabric的上下文中,其“节点名”必须被视为“主机名”,不是吗?是的,主机名(内部)/machinename/nodename,但不是连接到Azure负载平衡器公共IP的外部域名。@Peter Bons,拥有逻辑名称的好处是什么?虽然我们有MachineName,但为什么我们需要逻辑名称?是因为一台机器/虚拟机可以有多个节点,即Fabric.exe和FabricGateway.exe的多个实例吗?我不确定,因为我从未使用过它。我认为默认值是以实例号作为前缀的节点类型的名称。