我想知道在端口 21 上侦听一个实例的 azure worker 角色允许的最大并发连接数。
场景是:
我有一个工作角色实例,端口在 21 上打开,Tcplistener 在端口 21 上侦听传入连接。我已经实现了异步,这样我就可以在处理一个客户端请求时监听其他客户端请求。
在天蓝色部分,我想知道对 Worker 角色的端口 21 上的并发请求是否有任何限制。
问候, 维维克
我想知道在端口 21 上侦听一个实例的 azure worker 角色允许的最大并发连接数。
场景是:
我有一个工作角色实例,端口在 21 上打开,Tcplistener 在端口 21 上侦听传入连接。我已经实现了异步,这样我就可以在处理一个客户端请求时监听其他客户端请求。
在天蓝色部分,我想知道对 Worker 角色的端口 21 上的并发请求是否有任何限制。
问候, 维维克
我想你应该先了解网络原理。一次只有一个进程可以侦听网络接口上的特定端口和协议。那么如何处理通信呢?在一个非常简单的大纲中,情况如下所示(端口号和 IP 地址是故意伪造的):
所有这些都发生在非常低的协议级别,开发人员(除非正在开发网络适配器驱动程序)不会看到/关心这个端口转移。
现在真正的问题是,如何接受更多的并发连接。如果您正在开发自己的 TCP 服务器,您可以设置允许的最大连接数并自行管理这些连接(通过管理线程)。如果您使用其他第三方服务器 - 它应具有允许的最大并发连接数的可配置选项。
您可以在此处查看TCP Server 的简单实现。如您所见,有一个私有字段_maxConnections,用于处理连接。
总而言之 - 到特定资源(套接字)的最大并发连接数取决于为该资源提供服务的服务器。例如,IIS8 的默认最大并发连接数限制设置为 4294967295:
每个 VM 或角色实例的限制为 500K:https ://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#networking-limits-1