Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务结构如何选择承载服务的端口? 我在C公司的服务面料上实施GRPC。GRPC服务器需要一个ServerPort(负责将ssl凭据绑定到端口)和一个服务定义(负责将路径上的请求映射到方法委托)。我制作了一个通信侦听器,它报告分区和副本ID以及FQDN:端口。这允许客户端正确地确保其与正确的分区/副本通信。我在ServiceMainiTest中声明了一个端点资源,并将端口留空,以指示我希望ServiceFabric分配一个随机端口。我在本地开发中遇到的问题(我还没有将其推到azure中的集群中)是,复制副本似乎已死亡,因为它们被分配了相同的端口。我还应该注意,我正在告诉侦听器侦听辅助副本_C#_Azure_Azure Service Fabric_Grpc_Service Fabric Stateful - Fatal编程技术网

C# 服务结构如何选择承载服务的端口? 我在C公司的服务面料上实施GRPC。GRPC服务器需要一个ServerPort(负责将ssl凭据绑定到端口)和一个服务定义(负责将路径上的请求映射到方法委托)。我制作了一个通信侦听器,它报告分区和副本ID以及FQDN:端口。这允许客户端正确地确保其与正确的分区/副本通信。我在ServiceMainiTest中声明了一个端点资源,并将端口留空,以指示我希望ServiceFabric分配一个随机端口。我在本地开发中遇到的问题(我还没有将其推到azure中的集群中)是,复制副本似乎已死亡,因为它们被分配了相同的端口。我还应该注意,我正在告诉侦听器侦听辅助副本

C# 服务结构如何选择承载服务的端口? 我在C公司的服务面料上实施GRPC。GRPC服务器需要一个ServerPort(负责将ssl凭据绑定到端口)和一个服务定义(负责将路径上的请求映射到方法委托)。我制作了一个通信侦听器,它报告分区和副本ID以及FQDN:端口。这允许客户端正确地确保其与正确的分区/副本通信。我在ServiceMainiTest中声明了一个端点资源,并将端口留空,以指示我希望ServiceFabric分配一个随机端口。我在本地开发中遇到的问题(我还没有将其推到azure中的集群中)是,复制副本似乎已死亡,因为它们被分配了相同的端口。我还应该注意,我正在告诉侦听器侦听辅助副本,c#,azure,azure-service-fabric,grpc,service-fabric-stateful,C#,Azure,Azure Service Fabric,Grpc,Service Fabric Stateful,我的问题是: 服务结构如何选择承载服务副本的端口 辅助副本的端口共享问题是否只是本地开发的一个问题,因为我在同一台机器上?(我假设真实集群中的副本将放置在不同的故障/升级域上) Service Fabric保留在群集设置中定义的应用程序端口范围(如果您在Azure中托管,则在资源管理器模板中定义)。当您在端点资源中将端口保留为空时,SF将从此范围中选择尚未分配给计算机上其他服务的端口 但需要注意的重要一点是,端口分配是针对每个主机进程的,默认情况下是共享的主机进程,其中相同服务类型的副本可以共享

我的问题是:

  • 服务结构如何选择承载服务副本的端口
  • 辅助副本的端口共享问题是否只是本地开发的一个问题,因为我在同一台机器上?(我假设真实集群中的副本将放置在不同的故障/升级域上)

  • Service Fabric保留在群集设置中定义的应用程序端口范围(如果您在Azure中托管,则在资源管理器模板中定义)。当您在端点资源中将端口保留为空时,SF将从此范围中选择尚未分配给计算机上其他服务的端口

    但需要注意的重要一点是,端口分配是针对每个主机进程的,默认情况下是共享的主机进程,其中相同服务类型的副本可以共享一个主机进程。在这种情况下,同一主机进程中的复制副本将获得相同的端口

    有几种方法可以解决这个问题:

  • 使用支持端口共享的网络堆栈。在Windows上,您有Windows HTTP服务器API(由HttpListener和任何构建在它之上的东西使用,如Katana)和WCF
  • 改为使用,在这种情况下,每个复制副本都有自己的主机进程,因此也有自己的唯一端口。进程隔离还有许多其他好处(例如,如果一个复制副本使主机进程崩溃,它不会使其他复制副本随之崩溃),但代价是增加了机器上的资源消耗
    此外,服务远程处理是否构建在HTTP.SYS上?如果不是,它如何解决这个问题?