Привет всем экспертам!Какую модель нарезания резьбы следует использовать для создания обработчика или адаптера подачи
Это мой первый вопрос здесь.
Описание проблемы:
Я должен написать поток Обработчик данных рынка. Это будет служба Windows, будет использоваться два сокета.
Розетка A: для связи между приложениями-подписчиками и обработчиком подачи (обработчик подачи будет принимать запрос на соединение и запрос на предмет).
Socket B: Для связи между Feed Handler и поставщиком внешних рыночных данных, такими как Reuters/Bloomberg.
В обоих случаях Request/Response будет использовать один и тот же порт.
Примечание: Объем данных, поступающих из внешней системы, низкий (внешняя система будет отправлять только информацию, на которую была подписана, в данный момент времени). Однако позже мы можем захотеть его масштабировать, некоторые провайдеры бросают все данные, а Feed Handler должен отфильтровывать локально, основываясь на подписке.
Мои вопросы:
- Что потоковая модель я должен использовать?
- Какую стратегию ввода-вывода я должен использовать?
- Имея в виду оба случая, должен ли я создать отдельную цепочку запроса/ответа?
EDIT 1: После прочтения нескольких учебных пособий на Winsock, я планирую использовать объекты событий для асинхронного поведения.
Опасность заключается в том, что один поток должен прослушивать входящие клиентские соединения (Принять их), а также Подключиться к другому серверу, в свою очередь send/recv на двух разных портах.
Резьба A 1) Прослушивание входящих соединений. (Непрерывный) 2) Получение запроса Подписки/Отказа от подключенных клиентов. (Редко) 3) Подключитесь к внешнему серверу (только с отключением). 4) Переслать запрос от клиента на внешний сервер. (Редко) 5) Получать данные с внешнего сервера. (Непрерывный) 6) отправьте эти данные подключенным клиентам. (Непрерывный)
Мой вопрос: может ли один поток действовать как Клиент и Сервер, используя асинхронные модели ввода/вывода?
Заранее спасибо. Deepak