Agrona
Agrona bietet eine Bibliothek mit Datenstrukturen und Hilfsmethoden, die beim Erstellen leistungsstarker Anwendungen in Java häufig benötigt werden. Viele dieser Dienstprogramme werden im effizienten, zuverlässigen UDP-Unicast-, Multicast- und IPC-Nachrichtentransport von Aeron verwendet und bieten leistungsstarke Pufferimplementierungen zur Unterstützung des Simple Binary Encoding Message Codec.
Aktuelle Versionsinformationen und Änderungen finden Sie im Änderungsprotokoll.
Die neueste Version und Downloads finden Sie in Maven Central.
Zu den Dienstprogrammen gehören:
- Puffer – Thread-sichere direkte und atomare Puffer für die Arbeit mit On- und Off-Heap-Speicher mit Speicherordnungssemantik.
- Listen – Array-gestützte Listen von int/long-Primitiven, um Boxing zu vermeiden.
- Karten – Offene Adressierung und lineare Prüfung mit int/long-Primitivschlüsseln für Objektreferenzwerte.
- Karten – Offene Adressierung und lineare Prüfung mit int/long-Primitivschlüsseln zu int/long-Werten.
- Sets – Offene Adressierung und lineare Prüfung auf int/long-Primitive und Objektreferenzen.
- Cache – Assoziativ mit int/long-Primitivschlüsseln auf Objektreferenzwerte festlegen.
- Uhren – Uhrenimplementierungen, um Systemuhren zu abstrahieren, Caching zu ermöglichen und Tests zu ermöglichen.
- Warteschlangen – Implementierungen ohne Sperre für Anwendungen mit geringer Latenz.
- Ring-/Broadcast-Puffer – Off-Heap-implementiert für die IPC-Kommunikation.
- Einfaches Agent-Framework für gleichzeitige Dienste.
- Signalverarbeitung zur Unterstützung von „Strg + C“ in einer Serveranwendung.
- Skalierbares Timer-Rad – Zum Planen von Timern zu einem bestimmten Termin mit O(1)-Registrierung und Abbruchzeit.
- Codegenerierung aus annotierten Implementierungen, die auf primitive Typen spezialisiert sind.
- Implementierung von Off-Heap-Zählern für Anwendungstelemetrie, Positionsverfolgung und Koordination.
- Implementierungen von InputStream und OutputStream, die direkte Puffer umschließen können.
- DistinctErrorLog – Ein Protokoll eindeutiger Fehler, um zu vermeiden, dass Festplatten mit vorhandenen Protokollierungsansätzen überfüllt werden.
- IdGenerator – Gleichzeitiger und verteilter Generator für eindeutige IDs, der eine sperrenlose Implementierung des Twitter Snowflake-Algorithmus verwendet.
Bauen
Java-Build
Erstellen Sie das Projekt mit Gradle mithilfe dieser build.gradle-Datei.
Um Agrona zu bauen, benötigen Sie Folgendes:
- Die neueste Version von Java 17. Agrona wird mit Java 17 und 21 getestet.
Vollständige Reinigung und Aufbau:
Lizenz (siehe LICENSE-Datei für die vollständige Lizenz)
Copyright 2014-2024 Real Logic Limited.
Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie unter
https://www.apache.org/licenses/LICENSE-2.0
Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird die im Rahmen der Lizenz vertriebene Software „WIE BESEHEN“ und OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.