2012-04-26 3 views
3

Мне сказали некоторое время назад о LSMX disruptor и о том, насколько он сравним со стандартными очередями сообщений. Я загрузил последнюю версию и увидел, что это обычный JAR, который содержит множество классов и типов, которые все вращаются вокруг своего сверхбыстрого объекта RingerBuffer.LMAX Disruptor vs JMS Provider

В конечном счете, в конце концов, поставщик JMS на основе очереди просто сработает до большого количества кода, управляющего объектом очереди Java (или, скорее, параллельной очередью). Поэтому в этом отношении я вижу сравнение между LMAX Disruptor и JMS-провайдером (вернее, это внутренняя очередь).

Но JMS-провайдер - это гораздо больше, чем несколько очередей. Это комплексное ПО для обработки сообщений от потребителей и производителей. Мне интересно, есть ли эквивалент JMS в LMAX?

Было бы неплохо подключиться к «Разрушителю брокера» так же, как любой другой брокер JMS, и читать/писать сообщения в/из него.

Есть ли что-нибудь подобное, или я здесь вне базы?

ответ

5

Основное отличие состоит в том, что Disruptor предназначен для работы в одном процессе. Зачем? По соображениям производительности (короткий ответ). Более длинный ответ заключается в том, что если вы не будете осторожны, дополнительные накладные расходы на использование JMS-интерфейсов, соединений сокетов, блокировки и нескольких потоков будут иметь гораздо более высокие накладные расходы, что затмевает Disruptor.

Быстрая служба JMS может обрабатывать более 20 000 сообщений в секунду, но разрушитель предназначен для обработки сообщений в 20 миллионов долларов. Для этого это означает, что вы не можете делать определенные вещи, которые, по мнению JMS, в порядке. (см. выше)

Смежные вопросы