Agrona
Agrona fornece uma biblioteca de estruturas de dados e métodos utilitários que são uma necessidade comum na construção de aplicações de alto desempenho em Java. Muitos desses utilitários são usados no transporte eficiente e confiável de mensagens UDP unicast, multicast e IPC da Aeron e fornecem implementações de buffer de alto desempenho para suportar o Codec de Mensagem de Codificação Binária Simples.
Para obter as informações e alterações da versão mais recente, consulte o Log de alterações.
A versão mais recente e os downloads podem ser encontrados no Maven Central.
Os utilitários incluem:
- Buffers - Buffers atômicos e diretos seguros para threads para trabalhar com memória heap ligada e desligada com semântica de ordenação de memória.
- Listas - Listas apoiadas por array de primitivas int/long para evitar boxe.
- Mapas - Endereçamento aberto e sondagem linear com chaves primitivas int/long para valores de referência de objetos.
- Mapas - Endereçamento aberto e sondagem linear com chaves primitivas int/long para valores int/long.
- Conjuntos - Endereçamento aberto e sondagem linear para primitivas int/long e referências de objetos.
- Cache - Defina Associativo com chaves primitivas int/long para valores de referência de objeto.
- Relógios - Implementações de relógio para abstrair relógios do sistema, permitir armazenamento em cache e permitir testes.
- Filas – Implementações sem bloqueio para aplicativos de baixa latência.
- Buffers de anel/transmissão - implementados fora do heap para comunicação IPC.
- Estrutura de agente simples para serviços simultâneos.
- Manipulação de sinal para suportar "Ctrl + c" em uma aplicação de servidor.
- Roda de cronômetro escalável - Para agendar cronômetros em um determinado prazo com registro O(1) e tempo de cancelamento.
- Geração de código a partir de implementações anotadas especializadas em tipos primitivos.
- Implementação de contadores off-heap para telemetria de aplicativos, rastreamento de posição e coordenação.
- Implementações de InputStream e OutputStream que podem agrupar buffers diretos.
- DistinctErrorLog – Um log de erros distintos para evitar o preenchimento de discos com abordagens de log existentes.
- IdGenerator - Gerador de ID exclusivo simultâneo e distribuído que emprega uma implementação sem bloqueio do algoritmo Twitter Snowflake.
Construir
Construção Java
Crie o projeto com Gradle usando este arquivo build.gradle.
Você precisa do seguinte para construir o Agrona:
- A versão mais recente do Java 17. Agrona é testado com Java 17 e 21.
Limpeza completa e construção:
Licença (Veja o arquivo LICENSE para licença completa)
Direitos autorais 2014-2024 Real Logic Limited.
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo, exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
https://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.