Как спроектировать обработку в памяти для статуса торговых ордеров в реальном времени в Java

У нас есть приложение, которое готовит торговые ордера и отправляет их брокеру (Interactive Brokers) через их API. Приложение использует MySQL в качестве хранилища данных и ActiveMQ для обработки сообщений о состоянии торговых ордеров от Interactive Brokers API.

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

У нас есть проблема с производительностью для отправки и обработки более 200 заказов, и она занимает около 3-4 минут. Мы профилировали приложение (JProfiler) и обнаружили, что вызовы из базы данных только увеличивают время выполнения заказа.

Так как это торговое приложение, 3-4 минуты - огромное время, так как торговые цены на рынке меняются очень быстро.

Пожалуйста, предоставьте некоторые фреймворки или базы данных в памяти, где мы могли бы обрабатывать все на лету и синхронизировать с реальной базой данных на более позднем этапе. (желательно MySQL как коннектор)

Кроме того, Interactive Brokers будут отправлять сообщения о состоянии заказа в виде событий обратного вызова. Пожалуйста, сообщите нам о любых средах обработки сложных событий (CEP) в Java, которые соответствуют платформам в памяти.

Приветствуется любая помощь в том, как спроектировать или реализовать такие фреймворки.

Спасибо.

0 ответов

Другие вопросы по тегам