Я работаю над проектированием торговой системы с использованием Java Realtime ( Sun JRTS 2.2 ) и хотел бы задать несколько вопросов о лучших практиках, потому что боюсь изобретать велосипед и почти уверен, что моя задача уже решена.
Итак, у меня есть поток, который постоянно читает сокет, анализирует байты и извлекает сообщения (бинарный протокол). После этого я должен посылать сообщения алгоритму, который, собственно, делает какие-то расчеты и принимает решение, торговать или нет.
Поэтому я думаю, что мне следует спроектировать эту систему, разделив ее на 2 части. Производитель (периодический (?) поток в реальном времени, который извлекает байты из сокета, анализирует его) и потребитель (поток в реальном времени (периодический/спорадический?), который извлекает сообщения от производителя, манипулирует ими и т. д.).
Итак, первый вопрос заключается в том, как спроектировать высокопроизводительную связь между этими двумя потоками (производитель/потребитель)? Также хотелось бы услышать комментарии о существующем опыте проектирования таких систем, советы и т.п.
Спасибо за помощь!