Quickfix обрабатывает один и тот же сеанс с нескольких серверов - PullRequest
2 голосов
/ 30 января 2012

Я использую Quickfix / J для реализации протокола FIX.Проблема в том, что у нас будет два сервера, поддерживающих приложение, когда оно будет запущено.Тем не менее, только один сервер будет иметь движок FIX и работает.Планируется направить запросы FIX с другого сервера на сервер, на котором работает Quickfix.Код на обоих серверах абсолютно одинаков.Я застрял, поскольку мне нужно сделать серверы достаточно интеллектуальными, чтобы проверить, было ли соединение FIX уже установлено другим сервером.Если соединение не установлено, этот сервер создаст соединение.Если соединение уже существует, оно останется вполне.Это будет расширено в будущем, когда, если сервер обнаружит, что другой сервер, на котором установлена ​​FIX, выйдет из строя, он запустит свой собственный механизм FIX.На данный момент препятствие, похоже, находит чистый способ гарантировать, что установлено только одно TCP-соединение, а код остается одинаковым на обоих серверах.

1 Ответ

0 голосов
/ 30 января 2012

Один из возможных способов - использовать сообщения пульса, полученные вами от вашего контрагента.Если приходят сообщения пульса, это означает, что соединение установлено, и вам не нужно выполнять какие-либо действия.То, как вы собираетесь внедрять методологию, открыто для интерпретации.Вы можете использовать шину сообщений или что-то общее для движка 2 FIX.Но это всего лишь предположение, я использовал эту методологию Ame, когда работал над проектом FIX.

Обновление: - То, что я сделал, - это разместил посредник сообщений за двумя движками с контроллером.Единственная обязанность диспетчера состояла в том, чтобы продолжать проверять сообщения пульса.В тот момент, когда он пропускает сообщение сердцебиения, он отправляет сигнал резервному механизму FIX, чтобы он запустился, предполагая, что есть какая-то проблема с работающим механизмом FIX.В этой архитектуре нет особой сложности, только дополнительный компонент.Но это только один из вариантов, может быть, еще много.

...