2016-06-07 7 views
0

Мы пытаемся Хроника HFT как доказательство концепции для низкочастотных сообщений с чейками. Мы используем хронику-1.7.2.jarВыбираемый индекс хроники и файл данных

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

У нас возникли проблемы с подключением считывателя на epoll и сделать его доступным, если в файле хроники имеются данные. Обычно мы выбираем доступность данных DatagramChannel.

Просьба проследить, как сделать выбор читателя и зарегистрировать обратный вызов, когда есть данные, записанные в хронике.

ответ

2

Ключевой особенностью Chronicle Queue является то, что она позволяет избежать использования операционной системы, где это возможно. Даже один системный вызов, как правило, занимает 10 раз, пока проходит простое сообщение между процессами.

В вашем случае вы можете добавить фоновый поток, который контролирует очередь и запускает селектор для пробуждения.

Я бы рекомендовал использовать Chronicle очереди v4.4.3 (или позднее)

http://search.maven.org/#search%7Cga%7C1%7Cchronicle%20queue

В частности, я хотел бы предложить вам прочитать мои сообщения на Microservices.

http://vanilla-java.github.io/tag/Microservices/

+0

Thanks peter. Я согласен, что системные вызовы - это очень медленные черно-белые процессы. Но мы работаем в однопоточных приложениях. Одна виртуальная машина на ядро. Какие-либо предложения? Я не могу найти много документации по хронике, а также вы можете указать мне на некоторые источники, кроме gitbut, перечисленные один –

+0

@SrujanKumarGulla. Я бы начал с документов github и модульных тестов в качестве примеров. https://github.com/OpenHFT/Chronicle-Queue В статье о Microservices и примерах программы содержится большая часть кода, который вам нужно знать. –