我正在用C#编写服务器代码,我认为用一个端口为所有客户端(例如我梦中的数百万)提供服务是好的(甚至是可能的),或者最好使用1000个端口,为每个客户端使用较少使用的端口或随机端口!对性能有什么影响?
答案 0 :(得分:1)
通常以错误的方式为不同的客户端使用多个端口。
端口是一种有限的资源,因此您需要照此进行管理。
最多有65,535个端口,您只能使用1024和49,151之间的端口。
参见https://en.wikipedia.org/wiki/Registered_port
从管理角度来看,它们也不是没有开销的。考虑一下防火墙,代理,负载平衡器,路由等。如果您的应用程序使用多个端口,则需要为这些类型的应用程序配置所有这些端口(这也增加了安全风险),并可能与其他应用程序发生冲突碰巧在特定服务器上使用相同的端口。
此外,端口根本不是性能限制。
如果遇到性能瓶颈,则需要更改代码或使用负载平衡器将负载分配到同一主机或多个主机上的应用程序的多个实例。
如果考虑一下,世界上所有的Web服务器都使用端口80(至少在外部)。因此,如果Google搜索,Facebook,Instagram等可以在单个端口上处理此类负载,那么我相信您的简单应用程序也可以管理此负载!
您可以将不同的端口用于不同的目的,包括不同的协议,这是公认的做法。