应使用哪种线程模型来创建Feed Handler或Adapter

时间:2013-02-11 06:21:44

标签: c++ asynchronous winsock feeds adaptor

嗨,所有的专家都在那里:)

这是我的第一个问题。

问题描述:

我必须编写市场数据Feed Handler。这将是一个Windows服务,将使用两个套接字。

套接字A:用于订阅应用程序和Feed Handler之间的通信(Feed Handler将接受连接请求和项目请求)。

插槽B:用于Feed Handler和外部市场数据提供商之间的通信,如Reuters / Bloomberg。

在这两种情况下,请求/响应将使用相同的端口。

注意:来自外部系统的数据量很低(外部系统仅发送此时已订阅的信息)。 但是稍后我们可能想要扩展它,一些提供商会抛出所有数据,Feed Handler必须根据订阅在本地过滤掉。

我的问题:

  1. 我应该使用哪种线程模型?
  2. 我应该使用哪种I / O策略?
  3. 请记住两种情况,我应该创建单独的请求/响应线程吗?
  4. 编辑1:在阅读了几篇关于Winsock的教程之后,我打算将事件对象用于异步行为。

    这里需要关注的是,单个线程应该侦听传入的客户端连接(接受它们),还要连接到其他服务器,然后在两个不同的端口上发送/接收。

    线程A.     1)收听传入的连接。 (连续)     2)从连接的客户端接收订阅/取消订阅请求。 (很少)     3)连接到外部服务器(仅限一次)。     4)将来自客户端的请求转发到外部服务器。 (很少)     5)从外部服务器接收数据。 (连续)     6)将此数据发送回连接的客户端。 (连续)

    我的问题是,使用异步I / O模型,单个线程可以同时充当客户端和服务器吗?

    提前致谢。 迪帕克

1 个答案:

答案 0 :(得分:0)

最简单的线程模型似乎是单线程同步。如果需要为提供程序实现过滤器,请将其实现为socket-in / socket-out单独进程。