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