Netflix / astyanax
Deprecation
Astyanax foi aposentado e está nolonger sob desenvolvimento ativo, mas pode receber atualizações de dependência para facilitar a migração para longe de Astyanax.
No lugar de Astyanax considere o uso de DataStax Java Driver para Apache Cassandra que está sob desenvolvimento ativo e encapsula um monte de lições aprendidas com Astyanax. Como o driver DataStax suporta apenas o protocolo CQL (porque o Apache Cassandra 4.x irá abandonar o protocolo Thrift), você terá que atualizar todas as suas consultas baseadas em Thrift para consultas CQL.
Você tem a opção de continuar acessando famílias de colunas legadas através da opção CQL “com armazenamento compacto”. No entanto, no mínimo (todos?) os casos de uso a opção de armazenamento compacto legado ocupa mais espaço do que a nova opção padrão de armazenamento CQL, então você está realmente melhor também migrando seus dados para a nova opção padrão de armazenamento.
Esta versão do Astyanax sombreia sua dependência do cassandra – tudo para que você possa opcionalmente selecionar qualquer versão da unidade cassandra que você gosta para testes de unidade/integração com diferentes versões do Cassandra. Ao atualizar para esta versão do Astyanax você pode precisar:
- Explicitamente adicionar quaisquer dependências transitivas cassandra-all das quais você dependia anteriormente silenciosamente via transitivos Astayanax.
- Se você estava usando recursos internos do Astyanax que (não intencionalmente) expuseram publicamente as classes cassandra-all, você deve:
- Opção A (melhor): Migrar de Astyanax para DataStax Java Driver para Apache Cassandra.
- Opção B (segunda melhor): Use apenas interfaces públicas astyanax-core (nenhuma delas expõe cassandra-all classes).
- Opção C: Mude seus objetos de “org.apache.cassandra” para o sombreado “com.netflix.astyanax.shaded.org.apache.cassandra “pacote Astyanax agora depende de.
Visão Geral
Astyanax é um cliente Java de alto nível para o Apache Cassandra.Apache Cassandra é uma base de dados orientada a colunas altamente disponível.
Características
Uma visão geral rápida pode ser encontrada no Blog da Netflix Tech. Alguns recursos fornecidos por este cliente:
- Interface simples orientada a objetos de alto nível para o Cassandra.
- Comportamento de falha no lado do cliente.
- Sabstração de pool de conexão. Implementação de um pool de conexão round robin.
- Monitorando abstração para obter notificação de eventos do pool de conexão.
- Capsulamento completo do Thrift API e structs subjacentes.
- Repetição automática de hosts downed.
- Descoberta automática de hosts adicionais no cluster.
- Suspensão de hosts por um curto período de tempo após vários timeouts.
- Anottações para simplificar o uso de colunas compostas.
Documentação
Documentação detalhada das características e uso do Astyanax pode ser encontrada no wiki e no guia de iniciação.
IntelliJ: atualmente (junho 2018) IntelliJ tem um bug que torna um erro “infundado” para pacotes realocados via outro módulo no mesmo projeto (e.Isto afeta apenas o próprio projeto Astyanax dentro do IntelliJ; Astyanax ainda constrói perfeitamente bem via Gradle.Astyanax usuários não são afetados. Para mais detalhes veja:
Artifacts
Astyanax jarros são publicados para Maven Central. A partir do Astyanax 1.56.27 o projeto foi dividido em múltiplos sub-projetos, cada um dos quais precisa ser puxado separadamente.
ArtifactID/Nome
GroupID/Org | ArtifactID/Nome | Desc |
---|---|---|
com.netflix.astyanax | astyanax-thrift ou astyanax-cql | Escolha o protocolo Thrift ou CQL. Nota Cassandra 4.x+ suporte para protocolo Thrift. |
Artifactos de transição (dependências adicionadas automaticamente através de um artefacto requerido)
GroupID/Org | ArtifactID/Nome | DescDescDescDescDescrição |
---|---|---|
com.netflix.astyanax | astyanax-core | Interface pública de Astyanax. |
com.netflix.astyanax | astyanax-cassandra | Características específicas daassandra compartilhadas por astyanax-thrift e astyanax-cql |
com.netflix.astyanax | astyanax-cassandra-all-shaded | Shaded version of cassandra-all for the few classes used by astyanax-cassandra so projects are free to select arbitrary versions of cassandra-unit for unit/integration testing against newer versions of Cassandra. Esconde a dependência de Astyanax do cassandra-all, refacturando as classes “org.apache.cassandra” para “com.netflix.astyanax.shaded.org.apache.cassandra”. |
Artifactos opcionais
GroupID/Org | ArtifactID/Nome | Desc |
---|---|---|
com.netflix.astyanax | astyanax-contrib | Integração opcional com outros módulos Netflix OSS de uso comum. |
com.netflix.astyanax | astyanax-queue | Aplicação da fila apoiada pelo armazenamento Cassandra. Use por sua conta e risco — A Cassandra pode ser um motor de armazenamento muito ruim para filas de espera. Se você insiste em usar a Cassandra para filas, defina uma TTL muito curta e use a estratégia TimeWindowCompactionStrategy (TWCS). |
com.netflix.astyanax | astyanax-entity-mapper | |
com.netflix.astyanax | astyanax-recipes | Opcionais implementações de alguns padrões comuns. Use por sua conta e risco; alguns destes são populares, mas não são bem adequados para Cassandra em muitos casos de uso (olhando para você, AllRowsReader). |
História Antiga
Astyanax era o filho de Hector que era irmão de Cassandra na mitologia grega.
História Moderna
Este trabalho foi inicialmente inspirado por Hector.
Leave a Reply