Netflix / astyanax

Deprecation

Astyanax on poistettu käytöstä ja sitä ei enää kehitetä aktiivisesti, mutta se saattaa saada riippuvuuspäivityksiä, jotka helpottavat siirtymistä pois Astyanaxista.

Astyanaxin sijasta kannattaa harkita DataStax Java Driver for Apache Cassandrawhän on aktiivisessa kehitystyössä, ja se sisältää monia Astyanaxista opittuja asioita. Koska DataStax-ajuri tukee vain CQL-protokollaa (koska Apache Cassandra 4.x luopuu Thrift-protokollasta), sinun on päivitettävä kaikki Thrift-pohjaiset kyselysi CQL-kyselyiksi.

Sinulla on mahdollisuus jatkaa vanhojen sarakeperheiden käyttämistä CQL-vaihtoehdon ”with compact storage” kautta. Kuitenkin useimmissa (kaikissa?) käyttötapauksissa legacy compact storage -vaihtoehto vie itse asiassa enemmän tilaa kuin uusi oletusarvoinen CQL-tallennusvaihtoehto, joten sinun on oikeastaan parempi myös siirtää tietosi uuteen oletustallennusvaihtoehtoon.

Tässä Astyanax-versiossa astyanaxin riippuvuus cassandra-all-versiosta häivytetään, joten voit valinnaisesti valita minkä tahansa haluamasi version cassandra-unitista yksikkö-/integrointitestausta varten Cassandran eri versioiden kanssa. Kun päivität tähän Astyanaxin versioon, sinun on ehkä:

  • Eksplisiittisesti lisättävä kaikki cassandra-all-transitiiviset riippuvuudet, joista aiemmin olit hiljaa riippuvainen Astayanaxin transitiiveillä.
  • Jos käytit Astyanaxin sisäisiä ominaisuuksia, jotka (tahattomasti) paljastivat julkisesti cassandra-all-luokkia,sinun on joko:
    • Vaihtoehto A (paras): Siirtyä pois Astyanaxista DataStax Java Driver for Apache Cassandraan.
    • Vaihtoehto B (toiseksi paras): Käytä vain astyanax-coren julkisia rajapintoja (mikään niistä ei paljasta cassandra-all-luokkia).
    • Vaihtoehto C: Vaihda objektisi ”org.apache.cassandra”-paketista varjostettuun ”com.netflix.astyanax.shaded.org.apache.cassandra”-pakettiin, josta Astyanax nyt riippuu.

Yleiskatsaus

Astyanax on korkean tason Java-asiakas Apache Cassandralle.Apache Cassandra on korkeasti saatavilla oleva sarakepohjainen tietokanta.

Ominaisuudet

Lyhyen yleiskatsauksen löydät Netflixin teknisestä blogista. Joitakin tämän asiakkaan tarjoamia ominaisuuksia:

  • Korkean tason yksinkertainen oliopohjainen rajapinta Cassandraan.
  • Fail-over-käyttäytyminen asiakaspuolella.
  • Connection pool abstraktio. Round robin -yhteyspoolin toteutus.
  • Valvonta-abstraktio tapahtumailmoitusten saamiseksi yhteyspoolista.
  • Täydellinen kapselointi taustalla olevasta Thrift API:sta ja rakenteista.
  • Automaattinen uudelleenkokeilu kaatuneille isännille.
  • Automaattinen uusien isäntien löytäminen klusterista.
  • Isäntien keskeyttäminen lyhyeksi ajaksi useiden aikakatkaisujen jälkeen.
  • Annotaatiot yhdistettyjen sarakkeiden käytön yksinkertaistamiseksi.

Dokumentaatio

Tarkka dokumentaatio Astyanaxin ominaisuuksista ja käytöstä löytyy wikistä ja aloitusoppaasta.

IntelliJ: tällä hetkellä (kesäkuu 2018) IntelliJ:ssä on bugi, joka tekee ”unfound”-virheen paketeille, jotka on siirretty toisen moduulin kautta samaan projektiin (esim.esim. varjostetut luokat paketista astyanax-cassandra-all-shaded).Tämä vaikuttaa vain itse Astyanax-projektiin IntelliJ:ssä; Astyanax rakennetaan edelleen täydellisesti Gradlen kautta.Astyanax-käyttäjiä tämä ei koske. Lisätietoja on osoitteessa:

Artefaktit

Astyanaxin purkit julkaistaan Maven Centraliin. Astyanax 1.56.27:stä lähtien projekti on jaettu useaan aliprojektiin, joista jokainen on vedettävä erikseen.

Tarvittavat artefaktit

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-thrift tai astyanax-cql Valitse Thrift- tai CQL-protokolla. Huomautus Cassandra 4.x+ poistaa tuen Thrift-protokollalle.

Transitiiviset artefaktit (riippuvuudet lisätään automaattisesti vaaditun artefaktin kautta)

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-core Astyanaxin julkinen rajapinta.
com.netflix.astyanax astyanax-cassandra Kassandra-kohtaiset ominaisuudet, jotka jaetaan astyanax-thriftin ja astyanax-cql:n kanssa
com.netflix.astyanax astyanax-cassandra-all-shaded Tummennettu versio cassandra-all:sta muutamien astyanax-cassandran käyttämien luokkien osalta, joten projektit voivat vapaasti valita mielivaltaisia versioita cassandra-unit:sta yksikkö-/integrointitestausta varten Cassandran uudempia versioita vastaan. Piilottaa Astyanaxin riippuvuuden cassandra-all:sta refaktoroimalla ”org.apache.cassandra”-luokat muotoon ”com.netflix.astyanax.shaded.org.apache.cassandra”.

Optional artifacts

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-contrib Vaihtoehtoinen integrointi muihin yleisesti käytettyihin Netflixin OSS-moduuleihin.
com.netflix.astyanax astyanax-queue Cassandra-tallennustilalla tuettu jonototeutus. Käytä omalla vastuullasi — Cassandra voi olla erittäin huono tallennusmoottori jonoille. Jos haluat välttämättä käyttää Cassandraa jonoihin, aseta hyvin lyhyt TTL ja käytä TimeWindowCompactionStrategy (TWCS).
com.netflix.astyanax astyanax-entity-mapper
com.netflix.astyanax astyanax-recipes Vaihtoehtoiset toteutukset joistakin yleisistä malleista. Käytä omalla vastuullasi; jotkut näistä ovat suosittuja, mutta eivät sovi hyvin Cassandraan monissa käyttötapauksissa (katson sinua, AllRowsReader).

Antiikin historia

Astyanax oli Hektorin poika, joka oli Kassandran veli kreikkalaisessa mytologiassa.

Nykyaikaishistoriaa

Tämä teos on alunperin saanut inspiraationsa Hektorista.

Leave a Reply