排队和发送批量TCP消息的最佳设计模式

时间:2014-05-26 21:14:51

标签: design-patterns tcp queue messaging

我有一个相对简单的要求来编写一个执行以下任务的Windows服务,并希望对最简单和最好的设计模式提出一些建议。

  1. 从存储过程的SQL服务器
  2. 返回X行数
  3. 将每行转换为消息并发送到TCP服务器
  4. 发送所有邮件后,请返回步骤1
  5. 需要存在一种机制,用于检测TCP连接是否已进入半操作/关闭状态,例如发送消息并在每批消息发送后从服务器接收响应。如果没有回复,我们将需要重新连接并重新发送当前批次。消息必须传递到服务器。我们将最后一个轮询的消息的ID存储在数据库中,这样我们就可以从我们停止的地方重新启动,如果服务因sto / crash / restart而出于任何原因。

    速度非常重要,因为我们需要尽可能接近实时地将数据传输到TCP服务器。

    该应用程序将使用.net 4.0编写。

    谢谢,我期待听到您的建议。

1 个答案:

答案 0 :(得分:0)

根据消息的大小以及轮询和安全限制的频率,我可能采取不同的方法,但我的快速简短响应如下: 在客户端:我将消息读入轮询线程中的“跨国”队列,然后在另一个线程上 我将通过调用我在服务器上设置的WCF服务将这些消息发送到服务器,该服务处理我使用客户端代理传递的行。

在服务器端,我将设置一个WCF服务[使用TCP绑定,如果它在公司的网络基础结构之外],它将处理我的数据。