获得实时数据的WCF效率是多少?

时间:2016-06-14 06:32:09

标签: c# wcf

假设我有一千个硬件设备(大约20,000个)实时发送数据。我必须捕获这些数据并将所有数据发送到数据库并在应用程序中显示信息。为此我想开发一个WCF服务,该服务轮询所有设备并从设备获取数据并存储在数据库中。

所以我的问题是" WCF是否有效这样做,或者我应该采用另一种方法"

1 个答案:

答案 0 :(得分:1)

  

我正在考虑开发一个轮询所有设备的WCF服务

WCF服务无法“轮询”。消费者可以轮询,也就是说它可以一遍又一遍地调用服务,但是WCF客户端通道中没有内置轮询模式。因此,任何轮询行为都需要编程。

  

所以我的问题是“WCF是否有效这样做,或者我应该遵循   另一种方法“

我怀疑你实际上是希望你的设备调用服务并传递数据,所以你实际要问的是 WCF服务可以处理大量的呼叫吗?,答案是肯定的。

但是,为了获得最佳的可伸缩性,您应该公开每个调用的服务,并通过netTcpBinding(基本上是套接字)执行此操作,netTcpBinding使用优化的编码,因此性能更高。

这仅适用于运行WCF客户端堆栈的使用者。如果您的设备上没有WCF,那么下一个最佳选项可能是webHttpBinding上的HTTP端点,它提供了最佳的互操作性。

  

你能推荐一些其他技术吗?

好吧,如果你很高兴在你的设备上使用http,你应该看nancyfx来托管你的服务 - 它是.net的一个非常好的,轻量级的http容器。