Какую модель потоков следует использовать для создания обработчика подачи или адаптера

Привет всем экспертам там 🙂

Это мой первый вопрос здесь.

Описание проблемы :

Я должен написать обработчик потока данных рынка. Это будет служба Windows, будет использовать два сокета.

Разъем A: для связи между приложениями подписки и обработчиком каналов (обработчик каналов будет принимать запрос на подключение и запрос элемента).

Разъем B: для связи между обработчиком каналов и провайдером данных внешнего рынка, например, Reuters / Bloomberg.

В обоих случаях запрос / ответ будут использовать один и тот же порт.

Примечание. Объем данных, поступающих из внешней системы, невелик (внешняя система будет отправлять только информацию, на которую была подписана, в данный момент).
Однако в дальнейшем мы можем захотеть масштабировать их, некоторые провайдеры выдают все данные, и Feed Handler должен отфильтровывать их локально на основе подписки.

Мои вопросы :

  1. Какую модель потоков я должен использовать?
  2. Какую стратегию ввода / вывода я должен использовать?
  3. Имея в виду оба случая, я должен создать отдельный поток Запроса / Ответа?

РЕДАКТИРОВАТЬ 1: После прочтения нескольких учебных пособий по Winsock, я планирую использовать объекты событий для асинхронного поведения.

Проблема здесь в том, что один поток должен прослушивать входящие клиентские соединения (принимать их), а также подключаться к другому серверу, в свою очередь отправлять / записывать на двух разных портах.

Нить А
1) Прослушивание входящих соединений. (Continuous)
2) Получение запроса подписки / отмены подписки от подключенных клиентов. (Редко)
3) Подключиться к внешнему серверу (только один раз).
4) Переслать запрос от клиента на внешний сервер. (Редко)
5) Получать данные с внешнего сервера. (Continuous)
6) отправить эти данные обратно подключенным клиентам. (Continuous)

Мой вопрос заключается в том, может ли отдельный поток действовать как клиент и сервер, используя асинхронные модели ввода / вывода?

Заранее спасибо.
Дипак

0

Решение

Самая простая модель многопоточности — однопоточная синхронная. Если вам нужно внедрить фильтр для провайдера, реализуйте его как отдельный процесс ввода-вывода.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]