.net 处理数千个连接的最佳方法
我有一个车队(假设大约5000辆,稍微少一点).net 处理数千个连接的最佳方法,.net,sockets,tcp,asynchronous,.net,Sockets,Tcp,Asynchronous,我有一个车队(假设大约5000辆,稍微少一点) 我们希望这些车辆向我们发送其GPS位置,比方说每5秒发送一次 因此,作为一条消息,我们只需要一个字符串(可能是一个带有日期、纬度、经度和车辆ID的JSON对象) 由于我是一名.NETWeb开发人员,我没有在TCP连接方面做很多工作 我在网上找到了异步服务器和客户端的例子,因此我编写了一个小程序,模拟大约5000辆汽车每5秒发送一次消息 目前,服务器很快就会崩溃。它似乎停止接收消息。我需要调查为什么今天 我的问题是:我走的好吗?我的意思是,对于500
JSON对象)
提前感谢。首先,5秒是获得不需要的更新的很短时间;我真的不会有太大的改变。检查您的商业案例以获取如此大量的数据。你可以通过更多的断断续续的电话逃脱。(我想说,每分钟1次是最低要求,我们通常会做15分钟的更新) 对于接收大量简单数据的调用,您可能会发现构造一个对象来处理它,通常构造管道会花费太多时间。您应该限制传入数据,读取数据包并在继续下一个数据包之前快速处理它们。对于这种情况,一个同时处理许多传入流的大规模系统可能不是最佳解决方案。当然,对每个传入的数据包都有一个对象处理程序,并试图同时处理所有这些数据包会导致灾难
如果没有更多信息,我无法提供更多帮助-您需要分析资源使用情况,无论是在系统中设置太多处理程序,还是在网络或CPU中,并更改体系结构以将这些方面的影响降至最低 看看NodeJS,因为从我的角度来看,它完全适合您的用例。与“标准”同步编程技术相比,您将能够处理更多的并行请求 例如,去看看能实现什么 请注意,我猜您还需要一个数据库来存储数据,每秒1000次插入也会使许多db服务器陷入麻烦。您可能想看看Redis或MongoDB之类的东西来进行扩展 还有一些关于如何使用与您的需求类似的.NET异步功能的例子:我个人不能对它的性能说任何话