Я хочу изучить инфраструктуру Disruptor. Кто может дать мне пример helloworld, который может работать в основном методе с языком программирования Java?
Пример приветственного мира Disruptor
Ответы (3)
Вот простой, работающий пример того, как использовать библиотеку Disruptor. Пример написан с использованием библиотеки Disruptor версии 2.10.4.
https://github.com/trevorbernard/disruptor-examples
Я также разместил сообщение в этой теме: Самый простой и актуальный пример кода LMAX Disruptor
Вот еще один с моей стороны. Я попробовал один пример разрушителя с использованием библиотек Lmax с открытым исходным кодом.
Я думаю, что идея использования разрушителя lmax (а не внутренностей разрушителя) заключается в создании диспетчера сообщений и регистрации прослушивателя событий, такого как потребитель.
Вы создаете Disruptor с указанием типа сообщения.
Disruptor<Message> disruptor = new Disruptor<Message>(Message.EVENT_FACTORY, 2048, exec);`
Вы создаете обработчик
final EventHandler<Message> handler = new EventHandler<Message>() {
// event will eventually be recycled by the Disruptor after it wraps
public void onEvent(final Message event, final long sequence, final boolean endOfBatch) throws Exception {
Integer value = event.getMsg();
if(value % 10000 == 0){
System.out.println("ValueEvent: " + value + " Sequence: " + sequence);
double timeINnanos = (System.nanoTime()-startTime);
double timetaken = (timeINnanos/1e9);
System.out.println("Time Taken till now in sec " + timetaken );
}
}
};
Зарегистрировать обработчик в Disruptor
disruptor.handleEventsWith(handler);
Запустите этот разрушитель и передайте возвращенный RingBuffer своему производителю
RingBuffer<Message> ringBuffer = disruptor.start();
Producer producer = new Producer(ringBuffer);
Полный код можно найти здесь ссылка на Github
Я бы посоветовал вам взглянуть на тестовый каталог в коде LMAX Каталог тестов исходного кода LMAX. На мой взгляд, это лучший источник всех вещей, которые вы можете делать с LMAX. Простой пример можно найти по следующей ссылке: Простой пример
Я также предлагаю вам взглянуть на примеры DSL.