Netflix / astyanax
Deprecation
Astyanax er blevet pensioneret og er ikke længere under aktiv udvikling, men kan modtage afhængighedsopdateringer for at lette migrationen væk fra Astyanax.
I stedet for Astyanax kan du overveje at bruge DataStax Java Driver for Apache Cassandrawhich er under aktiv udvikling og indkapsler mange af de erfaringer, der er gjort fra Astyanax. Da DataStax-driveren kun understøtter CQL-protokollen (fordi Apache Cassandra 4.x vil droppe Thrift-protokollen), skal du opdatere alle dine Thrift-baserede forespørgsler til CQL-forespørgsler.
Du har mulighed for at fortsætte med at få adgang til ældre kolonnefamilier via CQL-indstillingen “with compact storage”. Men i de fleste (alle?) brugstilfælde tager den gamle kompakte lagringsmulighed faktisk mere plads end den nye standard CQL-lagringsmulighed, så det er faktisk bedre, hvis du også migrerer dine data til den nye standardlagringsmulighed.
Denne version af Astyanax skygger for sin afhængighed af cassandra-all, så du kan eventuelt vælge en hvilken som helst version af cassandra-unit, du vil, til enheds-/integrationstest med forskellige versioner af Cassandra. Når du opgraderer til denne version af Astyanax, skal du muligvis:
- Forsøge eksplicit at tilføje eventuelle transitive afhængigheder af cassandra-all, som du tidligere var tavst afhængig af via Astayanax transitives.
- Hvis du brugte interne funktioner i Astyanax, der (utilsigtet) offentligt eksponerede cassandra-all klasser, skal du enten:
- Option A (bedst): Du skal migrere væk fra Astyanax til DataStax Java Driver for Apache Cassandra.
- Mulighed B (næstbedste):
- Mulighed C: Skift dine objekter fra “org.apache.cassandra” til den skraverede “com.netflix.astyanax.astyanax.shaded.org.apache.cassandra”-pakke, som Astyanax nu afhænger af.
Oversigt
Astyanax er en Java-klient på højt niveau til Apache Cassandra.Apache Cassandra er en meget tilgængelig kolonneorienteret database.
Funktioner
En hurtig oversigt kan findes på Netflix’ tekniske blog. Nogle funktioner, der leveres af denne klient:
- Højniveau, enkel objektorienteret grænseflade til Cassandra.
- Fail-over-adfærd på klientsiden.
- Astraktion af forbindelsespulje. Implementering af en round robin-forbindelsespulje.
- Overvågningsabstraktion for at få meddelelse om hændelser fra forbindelsespuljen.
- Fuldstændig indkapsling af den underliggende Thrift API og strukturer.
- Automatisk genforsøg af nedbrudte værter.
- Automatisk opdagelse af yderligere værter i klyngen.
- Suspension af værter i en kort periode efter flere timeouts.
- Annotationer til forenkling af brugen af sammensatte kolonner.
Dokumentation
Detaljeret dokumentation af Astyanax’ funktioner og brug kan findes på wikien og i Getting started-guiden.
IntelliJ: I øjeblikket (juni 2018) har IntelliJ en fejl, som giver en “unfound”-fejl for pakker, der er flyttet via et andet modul i det samme projekt (f.eks.f.eks. skraverede klasser fra astyanax-cassandra-all-shaded). dette påvirker kun selve Astyanax-projektet i IntelliJ; Astyanax bygges stadig helt fint via Gradle. astyanax-brugere er ikke berørt. For flere oplysninger se:
Artefakter
Astyanax-jars er offentliggjort til Maven Central. Fra og med astyanax 1.56.27 er projektet blevet opdelt i flere underprojekter, som hver især skal trækkes ind separat.
Nødvendige artefakter
GroupID/Org | ArtifactID/Name | Desc |
---|---|---|
com.netflix.astyanax | astyanax-thrift eller astyanax-cql | Vælg Thrift- eller CQL-protokol. Bemærk Cassandra 4.x+ dropper understøttelsen af Thrift-protokollen. |
Transitive artefakter (afhængigheder, der automatisk tilføjes via et påkrævet artefakt)
GroupID/Org | ArtifactID/Name | Desc |
---|---|---|
com.netflix.astyanax | astyanax-core | Astyanax’ offentlige grænseflade. |
com.netflix.astyanax | astyanax-cassandra | Cassandra-specifikke funktioner, der deles af astyanax-thrift og astyanax-cql |
com.netflix.astyanax | astyanax-cassandra-all-shaded | Skygget version af cassandra-all for de få klasser, der bruges af astyanax-cassandra, så projekter frit kan vælge vilkårlige versioner af cassandra-unit til enheds-/integrationstest mod nyere versioner af Cassandra. Skjuler Astyanax’ afhængighed af cassandra-all ved at refactoring af “org.apache.cassandra”-klasser til “com.netflix.astyanax.shaded.org.apache.cassandra”. |
Optionelle artefakter
GroupID/Org | ArtifactID/Name | Desc |
---|---|---|
com.netflix.astyanax | astyanax-contrib | Optionel integration med andre almindeligt anvendte Netflix OSS-moduler. |
com.netflix.astyanax | astyanax-queue | Queueue-implementering understøttet af Cassandra-lagring. Brug på egen risiko — Cassandra kan være en meget dårlig lagringsmotor til køer. Hvis du insisterer på at bruge Cassandra til køer, skal du indstille en meget kort TTL og bruge TimeWindowCompactionStrategy (TWCS). |
com.netflix.astyanax | astyanax-entity-mapper | |
com.netflix.astyanax | astyanax-recipes | Optionelle implementeringer af nogle almindelige mønstre. Brug på egen risiko; nogle af disse er populære, men passer ikke godt til Cassandra i mange brugssituationer (jeg kigger på dig, AllRowsReader). |
Oldtidshistorie
Astyanax var søn af Hektor, som var Kassandras bror i den græske mytologi.
Moderne historie
Dette arbejde blev oprindeligt inspireret af Hektor.
Leave a Reply