应该使用哪个线程模型来创建馈送处理程序或适配器

Which threading model should be used to create a Feed Handler Or Adaptor

本文关键字:创建 处理 程序 适配器 模型 线程      更新时间:2023-10-16

大家好:)

这是我在这里的第一个问题。

问题描述:

我必须编写一个市场数据馈送处理程序。这将是一个Windows服务,将使用两个套接字。

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

插座B:用于Feed处理器和外部市场数据提供商之间的通信,如路透社/彭博社。

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

注意:来自外部系统的数据量很低(此时外部系统将只发送已订阅的信息)。然而,稍后我们可能想要扩展它,一些提供者抛出所有数据,FeedHandler必须根据订阅在本地进行筛选。

我的问题:

  1. 我应该使用什么线程模型
  2. 我应该使用哪种I/O策略
  3. 记住这两种情况,我应该创建单独的请求/响应线程吗

第1版:在阅读了一些关于Winsock的教程之后,我计划将事件对象用于异步行为。

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

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

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

提前谢谢。Deepak

最简单的线程模型似乎是单线程同步的。如果您需要为提供程序实现一个筛选器,请将其实现为一个套接字输入/套接字输出独立的进程。