[英]How to write a TCP Server, using c# with concurrent connections at any time
我们在该国拥有超过50,000辆车的车队,我们将使用固定在车辆中的gps设备(而非移动设备)来跟踪我们的车辆,tcp服务器会通过指定IP地址和端口来接收该位置服务器。
主要要求之一是并发连接,每辆车每分钟都会更新其位置,因此编写过基于50,000辆车的TCP服务器的经验丰富的人可以告诉我随时可以接收多少个并发连接(只是一个想法) 。 我如何测试它,我的意思是如何对我的tcp服务器进行负载测试。
如果您知道任何有用的.net库,请进行指导,我从www.nsoftware.com看过IPDaemon,他们声称
默认情况下,每个IPDaemon实例最多可以处理1,000个并发传入连接(通过使用MaxConnections配置设置,此数目可以增加到100,000,也可以减少到一个较低的值)。
因此,我感到困惑并感谢经验丰富的同事的建议。
谢谢
如果您唯一需要发送的是职位和一些元数据,请使用简单的HTTP服务器。 市场上有很多这样的公司,而且大多数都非常有效率:管理5万个客户应该不是问题,这不是一个很高的数目。
我建议您不要重新发明轮子或使用任何过于复杂的东西。 一个简单的ASP.NET MVC应用程序应该可以解决问题。
并发连接数绝不能高于1500(99.99%)。 除了在实际系统上进行测试外,没有真正的方法来对其进行负载测试。 这是一个数学问题,您可以这样解决。
您有50000辆汽车每60秒发送一次信号,持续1秒(可能更少,这将导致更少的并发连接)。 由于信号的发送是不同步的(我想是汽车在同一时间都发送信号),所以它们或多或少地排列成这样,这样您每秒将获得833个连接,即50k / 60。 现在,让我们假设您“不幸”,同时打开了2000辆汽车(或相隔60秒),然后在打开这些汽车时将获得2000个并发连接,这极不可能。 正如我说的那样,您可以将1500个并发连接作为最大连接数,但要真正节省下来,请将其增加到3000或4000,这是永远不会发生的。
所有这些都考虑到计算机将花费1秒来解析一个信号,实际上这一次应该接近0.1秒甚至更低,这将导致并发连接减少10倍,因此我对绝对最大并发连接的真实猜测约为500
如果不是.Net的硬性要求,建议您使用NodeJs。它非常轻巧,并且已经相当成熟。
正如Falanwe所说,每分钟50.000个连接并不是很多,如果仅仅是它们正在发送的位置数据。 这基本上受带宽限制。 计算机上没有太多服务。
我认为您最大的挑战不是与GPS跟踪器的TCP连接,而是数据库处理。 保存所有位置数据1年后,您将拥有的数据量很大。 数据库服务器的性能将非常重要。
另外:您将如何管理,以及如何对收集到的数据进行处理? 您将需要创建智能通知和数据过滤器,以提取管理车队所需的数据。
我在设置GPS跟踪服务器和管理车队方面有很多经验。 如果您有任何疑问,请随时与我联系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.