Я также думаю об интеграции паттерна Disruptor в наше приложение. Я немного не уверен в нескольких вещах, прежде чем начать использовать дисраптор.
- У меня есть 3 производителя, в основном поток FIX, который десериализует запросы. Другой поток, который постоянно изменяет цену ордера по мере движения рынка. Также у нас есть еще один поток, который отвечает за десериализацию запросов, отправленных из приложения с графическим интерфейсом. Все три потока в настоящее время пишут в очередь блокировки (поэтому мы видим много конфликтов в очереди)
- Разрушитель говорит о принципе единого писателя, и, судя по тому, что я читал, этот подход лучше всего масштабируется. Можем ли мы каким-либо образом заставить эти три потока подчиняться принципу единственного записи?
- Также в типичном приложении запроса/ответа, особенно в нашем случае, у нас есть конкуренция за кеш в памяти, так как нам нужно заблокировать кеш, когда мы обновляем кеш с ответом, в то время как запрос может выполняться для того же порядка. Как нам справиться с этим через дисраптор, т.е. как мне привязать ответ к конкретному запросу? Можно ли снять блокировку кеша если да то как?
Любые предложения/указатели будут высоко оценены. В настоящее время мы используем Java 1.6