disruptor (LMAX-Exchange/disruptor)
Searching Database…
Что это такое?
LMAX Disruptor — это Java-библиотека для быстрого обмена сообщениями между потоками внутри одного приложения, то есть очень быстрая передача событий внутри процесса.
Это библиотека, которую я подключаю к своему Java-проекту, или что-то, что разворачивается как сервер?
Это библиотека: вы добавляете её как зависимость в свой Java-проект и используете внутри своего процесса — никакого сервера или демона разворачивать не нужно.
Как подключить её к проекту и начать пользоваться?
Начните с Guide и документации, на которые ссылается README, — там пошагово разбирается модель программирования; затем подключите библиотеку в сборку Gradle или Maven.
Нужно ли что-то ещё, кроме JDK, чтобы её запустить?
Только JDK — это чистая Java без нативных компонентов и внешних сервисов; в собственном CI проекта она собирается через Gradle.
То есть она связывает потоки внутри одного приложения и не передаёт сообщения между машинами или сервисами?
Верно — её задача ограничивается обменом сообщениями между потоками внутри одной JVM. Это не сетевой брокер, и между машинами или сервисами сообщения она не передаёт.
Для каких приложений она создана?
Для Java-систем, чувствительных к задержкам, — библиотека вышла из команды LMAX Exchange, так что речь о конвейерах внутри процесса, где пропускная способность и время отклика важнее удобства.
Работу с конкурентностью реально тестируют под нагрузкой, или мне остаётся просто верить на слово?
В CI запускаются наборы тестов Java Concurrency Stress (jcstress) — быстрый прогон плюс глубокий ручной — вместе со сборками Gradle и анализом CodeQL.
Можно ли использовать её в коммерческом ПО?
Да — она распространяется по лицензии Apache-2.0, это разрешительная лицензия, так что свободно используйте её в коммерческих продуктах.
Это проверенное временем решение или недавний эксперимент?
Решение проверенное: репозиторий ведёт историю с 2012 года, проект поддерживает команда LMAX Development Team, а стресс-тесты встроены в CI.
What are similar projects?
EventBus, tokio, redisson, sidekiq, miaosha, caffeine, muduo, Android-Universal-Image-Loader
Which topics is it in?
asynchronous, low-latency, gradle, event-driven, multithreading, jvm, messaging, concurrency, high-performance, developers, java, performance