Netflix / astyanax

Depreciere

Astyanax a fost retras și nu mai este în curs de dezvoltare activă, dar poate primi actualizări de dependență pentru a ușura migrarea de la Astyanax.

În loc de Astyanax, luați în considerare utilizarea Driverului Java DataStax pentru Apache Cassandra, care este în curs de dezvoltare activă și înglobează o mulțime de lecții învățate de la Astyanax. Deoarece driverul DataStax suportă doar protocolul CQL (deoarece Apache Cassandra 4.x va renunța la protocolul Thrift), va trebui să vă actualizați toate interogările bazate pe Thrift în interogări CQL.

Aveți opțiunea de a continua să accesați familiile de coloane vechi prin intermediul opțiunii CQL „cu stocare compactă”. Cu toate acestea, în cele mai multe (toate?) cazuri de utilizare, opțiunea de stocare compactă moștenită ocupă de fapt mai mult spațiu decât noua opțiune implicită de stocare CQL, așa că este mai bine să vă migrați și datele către noua opțiune implicită de stocare.

Această versiune de Astyanax își estompează dependența de cassandra-all, astfel încât puteți selecta opțional orice versiune de cassandra-unit pe care o doriți pentru testarea unității/integrării cu diferite versiuni de Cassandra. Atunci când faceți upgrade la această versiune de Astyanax s-ar putea să fie nevoie să:

  • Adaugați în mod explicit orice dependențe tranzitive de cassandra-all de care depindeați anterior în mod silențios prin intermediul tranzitivelor Astayanax.
  • Dacă foloseați caracteristici interne ale Astyanax care (neintenționat) expuneau public clasele cassandra-all, trebuie fie:
    • Opțiunea A (cea mai bună): Să migrați de la Astyanax la DataStax Java Driver for Apache Cassandra.
    • Opțiunea B (a doua cea mai bună): Utilizați numai interfețele publice astyanax-core (niciuna dintre ele nu expune clasele cassandra-all).
    • Opțiunea C: Schimbați-vă obiectele de la „org.apache.cassandra” la pachetul umbrit „com.netflix.astyanax.shaded.org.apache.cassandra „De care Astyanax depinde acum.

Prezentare generală

Astyanax este un client Java de nivel înalt pentru Apache Cassandra.Apache Cassandra este o bază de date orientată pe coloane cu disponibilitate ridicată.

Caracteristici

O scurtă prezentare generală poate fi găsită la Netflix Tech Blog. Câteva caracteristici oferite de acest client:

  • Interfață de nivel înalt, simplă, orientată pe obiecte pentru Cassandra.
  • Comportamentul de eșec pe partea clientului.
  • Astractizare a pool-ului de conexiuni. Implementarea unui grup de conexiuni de tip „round robin”.
  • Abstracție de monitorizare pentru a obține notificări de evenimente de la grupul de conexiuni.
  • Încapsulare completă a structurilor și a API-ului Thrift subiacente.
  • Reîncercare automată a gazdelor căzute.
  • Descoperirea automată a gazdelor suplimentare în cluster.
  • Suspendarea gazdelor pentru o perioadă scurtă de timp după mai multe timeout-uri.
  • Anotații pentru a simplifica utilizarea coloanelor compuse.

Documentație

Documentația detaliată a caracteristicilor și utilizării Astyanax poate fi găsită pe wiki și în ghidul de inițiere.

IntelliJ: în prezent (iunie 2018) IntelliJ are o eroare care redă o eroare „unfound” pentru pachetele relocate prin intermediul unui alt modul în același proiect (de ex.g. clasele umbrite din astyanax-cassandra-all-shaded). acest lucru afectează doar proiectul Astyanax în sine în IntelliJ; Astyanax se construiește în continuare perfect bine prin Gradle. utilizatorii Astyanax nu sunt afectați. Pentru mai multe detalii, consultați:

Artefacte

Astyanax jars sunt publicate în Maven Central. Începând cu astyanax 1.56.27, proiectul a fost împărțit în mai multe subproiecte, fiecare dintre acestea trebuind să fie extras separat.

Artifacte necesare

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-thrift sau astyanax-cql Alegeți protocolul Thrift sau CQL. Notă Cassandra 4.x+ renunță la suportul pentru protocolul Thrift.

Artifacte tranzitorii (dependențe adăugate automat prin intermediul unui artefact necesar)

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-core Interfața publică a lui astyanax.
com.netflix.astyanax astyanax-cassandra Caracteristici specifice astyanax împărtășite de astyanax-thrift și astyanax-cql
com.netflix.astyanax astyanax-cassandra-all-shaded Versiune umbrită a cassandra-all pentru cele câteva clase utilizate de astyanax-cassandra, astfel încât proiectele sunt libere să selecteze versiuni arbitrare ale cassandra-unit pentru testarea unității/integrării față de versiuni mai noi de Cassandra. Ascunde dependența lui Astyanax de cassandra-all prin refactorizarea claselor „org.apache.cassandra” în „com.netflix.astyanax.shaded.org.apache.cassandra”.

Artifacte opționale

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-contrib Integrare opțională cu alte module OSS Netflix utilizate în mod obișnuit.
com.netflix.astyanax astyanax-queue Implementare de coadă susținută de stocare Cassandra. Utilizați-o pe propriul risc — Cassandra poate fi un motor de stocare foarte prost pentru cozile de așteptare. Dacă insistați să folosiți Cassandra pentru cozile de așteptare, setați un TTL foarte scurt și folosiți TimeWindowCompactionStrategy (TWCS).
com.netflix.astyanax astyanax-entity-mapper
com.netflix.astyanax astyanax-recipes Implementații opționale ale unor modele comune. Folosiți pe propriul risc; unele dintre acestea sunt populare, dar nu sunt potrivite pentru Cassandra pentru multe cazuri de utilizare (mă uit la tine, AllRowsReader).

Istorie antică

Astyanax a fost fiul lui Hector, care a fost fratele Cassandrei în mitologia greacă.

Istorie modernă

Această lucrare a fost inspirată inițial de Hector.

.

Leave a Reply