在我的项目中,我有一个运行C#应用程序的云托管虚拟机,它需要:
在我看来,设计非常简单。我提供了一个侦听器,该侦听器接受传入的TCP连接,在建立新连接时会产生一个新线程;该线程在循环中运行(执行活动从2到5),并检查相关的套接字活动性(如果套接字已死,则线程退出循环并最终终止;稍后,将尝试从属于该套接字的外部客户端尝试建立新连接)。
所以现在的问题是,对于数量有限的外部客户端(我想说是200/300),所有设备都运行正常,但是随着数量的增长(或当客户端以更高的频率发送数据时),通信将变得非常缓慢且受阻。
例如,我在考虑更好的设计:
甚至是一些扩展策略:
最后一个问题:目前的设计是糟糕的还是天真的?您认为我处理沟通的方式是否有重大批评?您是否还有其他更健壮和有效的选项(在上述选项中,还是在其他选项中)?
谢谢
听众的数量不太可能成为限制因素。在Stack Overflow,我们每个实例处理约60k个套接字,而我们需要多个侦听器的唯一原因是我们可以在多个端口上分配流量以避免负载均衡器上的临时端口耗尽