Azure Service Fabric 应用程序 - 主机名和主机 IP 地址

问题描述

如何从 Azure 服务结构应用程序获取为当前请求提供服务的节点的主机名和主机 IP 地址?请提出建议。

解决方法

这些 environment variables 由 SF 提供:

  • Fabric_NodeIPOrFQDN - 节点的 IP 或 FQDN,如集群清单文件中所指定。 (例如本地主机或 10.0.0.1)
  • Fabric_NodeName - 运行进程的节点的节点名称(例如 _Node_0)

假设您使用的是 C#,您可以通过 using Environment.GetEnvironmentVariable

获取环境变量 ,

除了使用环境变量,您还可以使用 StatelessServiceContext 类。它有一个 NodeContext 属性,其中包含几个有趣的 properties。在您的服务中,您可以像这样获取 fqdn/ip 地址:

var address = Context.NodeContext.IPAddressOrFQDN;

Afaik 节点名称与机器名称无关,它是一个逻辑名称。节点名称可以是用户定义的名称。我认为 Environment.MachineNameContext.NodeContext.IPAddressOrFQDN 是最准确的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...