【问题标题】:High speed data acquisiton using REST Services使用 REST 服务进行高速数据采集
【发布时间】:2013-09-07 17:28:43
【问题描述】:

我们需要开发一个基于 REST 的高速 WCF 服务,它将用于更新 2000 个数据点,每个数据点以 25 毫秒的速度变化。使用WCF是否可以实现如此高速的数据采集

【问题讨论】:

  • 这个问题需要澄清一下。你是说你在服务内部进行了 2000 次更新,每次更新的成本是 25 毫秒?如果是这种情况,那么您的通信协议的开销将不会很大。请具体说明:遇到的 25 毫秒延迟在哪里?并发有问题吗?您如何定义高速(即您的具体性能限制是什么)
  • 抱歉含糊不清。以下是情景。我们有多个设备需要从中获取数据。每个设备将有多达 2000 个数据点。每个数据点值可以在 25 毫秒内改变。我们需要记录所有值的变化......希望我更清楚

标签: wcf rest data-acquisition


【解决方案1】:

使用 WCF 是的。我不确定 REST 是否是您尝试解决的问题类型的最佳架构风格。我也想知道 HTTP 是否合适。

话虽如此,您可能想研究一下CORE,这是一项在数据采集等高度受限的环境中应用 REST 的努力。

【讨论】:

    【解决方案2】:

    我是这样理解您的问题的:您希望每 25 毫秒或每秒 40 次新数据值。一个设备有 2000 个离散数据值,这意味着来自每个设备的遥测流量约为每秒 80,000 个值。你也有多个设备,所以你的吞吐量会比这更高,例如10 台设备每秒 800,000 次更新。

    在这种情况下,我不希望服务层成为约束,原因很简单,始终可以通过添加更多主机来接收消息并在它们之间进行负载平衡来扩展服务层。我担心的是所有交易必须在同一个域内处理的任何地方。例如,所有这些数据是否都在一个关系数据库中?在这种情况下,您可能会遇到事务吞吐量问题。

    您的架构中似乎存在问题的另一个方面是设备本身。一台设备是否能够收集和发送 80 kHz 的值?这就是 REST 协议可能具有过高开销的地方。因此,可能是设备而非服务器约束可能驱使您找到更有效的协议。在这种情况下,可能需要直接针对套接字编写自定义协议,但这取决于您的设备。

    【讨论】:

    • 感谢保罗的指导
    • 您能否告诉我们更多关于如何通过添加更多主机来接收消息并在它们之间进行负载平衡来扩展服务层的信息
    • 恐怕这个话题对于stackoverflow问题来说太宽泛了。但是,如果您没有建立负载平衡服务器场的技术专长,实现此架构的一种简单且经济的方法是部署您的服务 Windows Azure 云服务 - 负载平衡构建到 Azure 云服务平台。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2016-12-04
    • 2018-10-29
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多