Netflix / astyanax

Deprecation

Astyanax is met pensioen en wordt niet langer actief ontwikkeld, maar kan afhankelijkheidsupdates ontvangen om de migratie van Astyanax te vergemakkelijken.

Overweeg in plaats van Astyanax de DataStax Java Driver voor Apache Cassandra te gebruiken, die actief wordt ontwikkeld en veel van de lessen van Astyanax in zich heeft. Omdat de DataStax driver alleen het CQL protocol ondersteunt (omdat Apache Cassandra 4.x het Thrift protocol zal laten vallen), zult u al uw Thrift-gebaseerde queries moeten updaten naar CQL queries.

U heeft de optie om de oude kolom families te blijven benaderen via de CQL “with compact storage” optie. In de meeste (alle?) gevallen neemt de oude compacte opslag optie echter meer ruimte in beslag dan de nieuwe standaard CQL opslag optie, dus u kunt uw gegevens beter ook migreren naar de nieuwe standaard opslag optie.

Deze versie van Astyanax schaft zijn afhankelijkheid van cassandra-all af, zodat u optioneel elke versie van cassandra-unit kunt selecteren die u wilt voor unit/integratie testen met verschillende versies van Cassandra. Bij het upgraden naar deze versie van Astyanax moet u wellicht:

  • Expliciet alle cassandra-all transitieve afhankelijkheden toevoegen waarvan u voorheen in stilte afhankelijk was via Astayanax transitives.
  • Als u interne functies van Astyanax gebruikte die (onbedoeld) cassandra-all classes publiekelijk blootlegden, moet u ofwel:
    • Optie A (beste): Migreer weg van Astyanax naar DataStax Java Driver voor Apache Cassandra.
    • Optie B (second-best): Gebruik alleen astyanax-core publieke interfaces (geen van hen bloot cassandra-all klassen).
    • Optie C: Schakel uw objecten van “org.apache.cassandra” naar de gearceerde “com.netflix.astyanax.shaded.org.apache.cassandra “pakket Astyanax is nu afhankelijk van.

Overview

Astyanax is een high level Java client voor Apache Cassandra.Apache Cassandra is een hoog beschikbare kolom georiënteerde database.

Features

Een snel overzicht is te vinden op de Netflix Tech Blog. Enkele kenmerken van deze client:

  • Hoog niveau, eenvoudige objectgeoriënteerde interface naar Cassandra.
  • Fail-over gedrag aan de kant van de client.
  • Ontrekking van de verbindingspool. Implementatie van een round robin connection pool.
  • Monitoring abstractie om event notificatie te krijgen van de connection pool.
  • Volledige inkapseling van de onderliggende Thrift API en structs.
  • Automatische retry van down hosts.
  • Automatische ontdekking van extra hosts in het cluster.
  • Opschorting van hosts voor een korte periode na verschillende time-outs.
  • Anotaties om het gebruik van samengestelde kolommen te vereenvoudigen.

Documentatie

Detail documentatie van Astyanax’s functies en gebruik is te vinden op de wiki en de getting started guide.

IntelliJ: momenteel (juni 2018) heeft IntelliJ een bug die een “unfound” fout weergeeft voor packages die via een andere module in hetzelfde project zijn verplaatst (bijv.b.v. gearceerde classes uit astyanax-cassandra-all-shaded).Dit heeft alleen invloed op het Astyanax-project zelf binnen IntelliJ; Astyanax bouwt nog steeds prima via Gradle.Astyanax-gebruikers ondervinden geen hinder. Voor meer details zie:

Artifacts

Astyyanax jars worden gepubliceerd naar Maven Central. Vanaf astyanax 1.56.27 is het project opgesplitst in meerdere sub projecten, die elk apart binnengehaald moeten worden.

Verplichte artefacten

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-thrift of astyanax-cql Kies het Thrift of CQL protocol. Opmerking Cassandra 4.x+ heeft geen ondersteuning meer voor het Thrift-protocol.

Transitieve artefacten (afhankelijkheden die automatisch worden toegevoegd via een vereist artefact)

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-core Astyanax’s publieke interface.
com.netflix.astyanax astyanax-cassandra Cassandra-specifieke functies gedeeld door astyanax-thrift en astyanax-cql
com.netflix.astyanax astyanax-cassandra-all-shaded Geschaduwde versie van cassandra-all voor de paar klassen die door astyanax-cassandra worden gebruikt, zodat projecten vrij zijn om willekeurige versies van cassandra-unit te selecteren voor unit/integratietesten tegen nieuwere versies van Cassandra. Verbergt Astyanax’s afhankelijkheid van cassandra-all door “org.apache.cassandra” klassen te refactoren naar “com.netflix.astyanax.shaded.org.apache.cassandra”.

Optional artifacts

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-contrib Optionele integratie met andere veelgebruikte Netflix OSS-modules.
com.netflix.astyanax astyanax-queue Que-implementatie ondersteund door Cassandra-opslag. Gebruik op eigen risico — Cassandra kan een zeer slechte storage engine zijn voor queues. Als u er op staat om Cassandra voor wachtrijen te gebruiken, stel dan een zeer korte TTL in en gebruik TimeWindowCompactionStrategy (TWCS).
com.netflix.astyanax astyanax-entity-mapper
com.netflix.astyanax astyanax-recipes Optionele implementaties van enkele veelgebruikte patronen. Gebruik op eigen risico; sommige zijn populair maar voor veel gevallen niet geschikt voor Cassandra (kijk naar jou, AllRowsReader).

Oude geschiedenis

Astyanax was de zoon van Hector die Cassandra’s broer was in de griekse mythologie.

Moderne geschiedenis

Dit werk was in eerste instantie geïnspireerd door Hector.

Leave a Reply