Azure service fabric 服务结构网络-是否可能在一个VM上有两个不同节点类型的节点?
我问这个问题与我以前的帖子有关。我读了一些书,但没有看到对我的评论的明确答案迭戈的答案 更新:当我充实这一点时,我想问题真的变成了:一个虚拟机上是否有多个节点。这并不是关于节点类型,而是关于节点本身。所以问题是:我是否可以拥有一个多IP虚拟机来承载服务结构,然后在其上承载两个不同类型的节点 通过这种方式,我可以在中解决上述问题,并具有用于外部访问的节点类型和用于内部访问的第二个节点类型,而不是硬编码集群设置期间使用范围之外的端口 我想我会变得贪婪,在这里问下一个问题: 如果我不能拥有多个IP,那么使用范围之外的端口是否有什么值得关注的。服务结构是否将该端口号用于其他用途 例如,我不希望ServiceFabric仅仅因为端口超出范围就认为微服务需要像所有其他微服务一样进行管理 例如,在我的onPrem ClusterConfig.Windows.MultiMachine.json文件中,我当前拥有:Azure service fabric 服务结构网络-是否可能在一个VM上有两个不同节点类型的节点?,azure-service-fabric,service-fabric-on-premises,Azure Service Fabric,Service Fabric On Premises,我问这个问题与我以前的帖子有关。我读了一些书,但没有看到对我的评论的明确答案迭戈的答案 更新:当我充实这一点时,我想问题真的变成了:一个虚拟机上是否有多个节点。这并不是关于节点类型,而是关于节点本身。所以问题是:我是否可以拥有一个多IP虚拟机来承载服务结构,然后在其上承载两个不同类型的节点 通过这种方式,我可以在中解决上述问题,并具有用于外部访问的节点类型和用于内部访问的第二个节点类型,而不是硬编码集群设置期间使用范围之外的端口 我想我会变得贪婪,在这里问下一个问题: 如果我不能拥有多个IP,
"nodes": [
{
"nodeName": "vm0",
"iPAddress": "Server1.DomainName.net",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r0",
"upgradeDomain": "UD0"
},
{
"nodeName": "vm1",
"iPAddress": "Server2.DomainName.net",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r1",
"upgradeDomain": "UD1"
},
{
"nodeName": "vm2",
"iPAddress": "Server3.DomainName.net",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r2",
"upgradeDomain": "UD2"
}
]
"nodeTypes": [
{
"name": "NodeType0",
"clientConnectionEndpointPort": "19000",
"clusterConnectionEndpointPort": "19001",
"leaseDriverEndpointPort": "19002",
"serviceConnectionEndpointPort": "19003",
"httpGatewayEndpointPort": "19080",
"reverseProxyEndpointPort": "19081",
"applicationPorts": {
"startPort": "20001",
"endPort": "20100"
},
"isPrimary": true
}
],
如果IP 1和4、2和5以及3和6在同一个VM上,我可以这样做吗?请注意,这两种节点类型的起始端口和结束端口没有拆分,以允许硬编码的WebAPI端点
"nodes": [
{
"nodeName": "vm0",
"iPAddress": "IPAddress_1",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r0",
"upgradeDomain": "UD0"
},
{
"nodeName": "vm1",
"iPAddress": "IPAddress_2",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r1",
"upgradeDomain": "UD1"
},
{
"nodeName": "vm2",
"iPAddress": "IPAddress_3",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r2",
"upgradeDomain": "UD2"
}
]
"nodes": [
{
"nodeName": "vm3",
"iPAddress": "IPAddress_4",
"nodeTypeRef": "NodeType1",
"faultDomain": "fd:/dc1/r0",
"upgradeDomain": "UD0"
},
{
"nodeName": "vm4",
"iPAddress": "IPAddress_5",
"nodeTypeRef": "NodeType1",
"faultDomain": "fd:/dc1/r1",
"upgradeDomain": "UD1"
},
{
"nodeName": "vm5",
"iPAddress": "IPAddress_6",
"nodeTypeRef": "NodeType1",
"faultDomain": "fd:/dc1/r2",
"upgradeDomain": "UD2"
}
]
"nodeTypes": [
{
"name": "NodeType0",
"clientConnectionEndpointPort": "19000",
"clusterConnectionEndpointPort": "19001",
"leaseDriverEndpointPort": "19002",
"serviceConnectionEndpointPort": "19003",
"httpGatewayEndpointPort": "19080",
"reverseProxyEndpointPort": "19081",
"applicationPorts": {
"startPort": "20001",
"endPort": "20500"
},
"isPrimary": true
}
"name": "NodeType1",
"clientConnectionEndpointPort": "19000",
"clusterConnectionEndpointPort": "19001",
"leaseDriverEndpointPort": "19002",
"serviceConnectionEndpointPort": "19003",
"httpGatewayEndpointPort": "19080",
"reverseProxyEndpointPort": "19081",
"applicationPorts": {
"startPort": "20501",
"endPort": "21000"
},
],
提前感谢,,
格雷格是和否。 当您在开发机器上安装SF Cluster时,它会在同一台机器上模拟一个5节点的群集,默认情况下,当您从azure portal进行配置时,您不能这样做。 服务结构就是运行在虚拟机之上的windows服务 这里的问题应该是: 如果我在同一台机器上有两种节点类型,它会解决我的端口问题吗 冲突问题 答案是否定的,因为它们都在争夺端口,就像您试图在本地开发机器的所有节点上加载绑定到端口80的单个服务一样 正如我在另一个问题上所建议的,如果创建节点类型不是一个选项,那么应该使用应用程序端口列表之外的硬编码端口 例如: -ServiceA是公开端口80上的操作的API -ServiceB是使用随机端口(取自应用程序端口范围)的后台工作程序服务 以这种方式设计服务,您将不会遇到端口问题
另一个选项是让所有服务使用随机端口,并使用反向代理与它们联系,检查它。是和否。 当您在开发机器上安装SF Cluster时,它会在同一台机器上模拟一个5节点的群集,默认情况下,当您从azure portal进行配置时,您不能这样做。 服务结构就是运行在虚拟机之上的windows服务 这里的问题应该是: 如果我在同一台机器上有两种节点类型,它会解决我的端口问题吗 冲突问题 答案是否定的,因为它们都在争夺端口,就像您试图在本地开发机器的所有节点上加载绑定到端口80的单个服务一样 正如我在另一个问题上所建议的,如果创建节点类型不是一个选项,那么应该使用应用程序端口列表之外的硬编码端口 例如: -ServiceA是公开端口80上的操作的API -ServiceB是使用随机端口(取自应用程序端口范围)的后台工作程序服务 以这种方式设计服务,您将不会遇到端口问题
另一种选择是让所有服务使用随机端口,并使用反向代理与它们联系,检查它。通常,您会保留一个面向公众的服务(即Asp.net core api),供外部客户端(从sf群集外部访问的任何人)使用。您可以使用此api服务调用托管在同一集群中的其他微服务。您可以将远程处理用作集群内的通信堆栈。这样,您就不必担心集群中的端口
对于api服务正在侦听的外部客户端,唯一需要的端口是80或其他端口。根据文件,这也是首选方法 通常,您会保留一个面向公众的服务(即Asp.net核心api),供外部客户端(从sf集群外部访问的任何人)使用。您可以使用此api服务调用托管在同一集群中的其他微服务。您可以将远程处理用作集群内的通信堆栈。这样,您就不必担心集群中的端口
对于api服务正在侦听的外部客户端,唯一需要的端口是80或其他端口。根据文件,这也是首选方法 如独立部署准备步骤中所述,一个VM上不能有两个节点 但是,在生产环境中,服务结构仅支持每台物理或虚拟机一个节点
如独立部署准备步骤中所述,一个VM上不能有两个节点 但是,在生产环境中,服务结构仅支持每台物理或虚拟机一个节点
Hmmm,我有许多服务器,它们有多个IP地址,共享同一端口(例如443),用于托管在一个机箱上的多个站点。只要IP端口组合是唯一的,您就可以在同一端口上承载多个站点。这能解决你对港口竞争的担忧吗?我知道您可以轻松地在IIS和网站上执行此操作,问题是您可以在具有节点类型的服务结构上执行此操作吗?您好,在SF中,无法定义您应该绑定到每个服务的网络\IP,我知道的唯一方法是在您的服务结构中硬编码IP