Агрона
Agrona предоставляет библиотеку структур данных и служебных методов, которые необходимы при создании высокопроизводительных приложений на Java. Многие из этих утилит используются в эффективной и надежной одноадресной, многоадресной и IPC-передаче сообщений Aeron по протоколу UDP и обеспечивают высокопроизводительную реализацию буферов для поддержки кодека сообщений простого двоичного кодирования.
Информацию о последней версии и изменениях см. в журнале изменений.
Последнюю версию и файлы для загрузки можно найти в Maven Central.
Утилиты включают в себя:
- Буферы — потокобезопасные прямые и атомарные буферы для работы с памятью в куче и вне нее с семантикой упорядочивания памяти.
- Списки — списки примитивов int/long, поддерживаемые массивами, чтобы избежать упаковки.
- Карты — открытая адресация и линейное зондирование с помощью примитивных ключей int/long для значений ссылок на объекты.
- Карты — открытая адресация и линейное зондирование с помощью примитивных ключей int/long для значений int/long.
- Наборы — открытая адресация и линейное зондирование для примитивов типа int/long и ссылок на объекты.
- Кэш — установите ассоциативность с примитивными ключами int/long для значений ссылок на объекты.
- Часы — реализации часов для абстрагирования системных часов, разрешения кэширования и тестирования.
- Очереди — реализации без блокировки для приложений с малой задержкой.
- Кольцевые/широковещательные буферы — реализованы вне кучи для связи IPC.
- Простая структура агента для параллельных сервисов.
- Обработка сигналов для поддержки «Ctrl + c» в серверном приложении.
- Масштабируемое колесо таймера. Для планирования таймеров на заданный срок с помощью O (1) зарегистрируйте и отмените время.
- Генерация кода из аннотированных реализаций, специализирующихся на примитивных типах.
- Реализация счетчиков вне кучи для телеметрии приложений, отслеживания положения и координации.
- Реализации InputStream и OutputStream, которые могут обертывать прямые буферы.
- DistinctErrorLog — журнал отдельных ошибок, позволяющий избежать заполнения дисков существующими методами ведения журнала.
- IdGenerator — параллельный и распределенный генератор уникальных идентификаторов, использующий безблокировочную реализацию алгоритма Twitter Snowflake.
Строить
Java-сборка
Создайте проект с помощью Gradle, используя этот файл build.gradle.
Для сборки Агроны вам потребуется следующее:
- Последняя версия Java 17. Агрона протестирована с Java 17 и 21.
Полная очистка и сборка:
Лицензия (полную лицензию см. в файле ЛИЦЕНЗИИ)
Авторские права Real Logic Limited, 2014–2024 гг.
Лицензируется по лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
https://www.apache.org/licenses/LICENSE-2.0
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для определения конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.