Netflix / astyanax

Deprecjacja

Astyanax został wycofany i nie jest już aktywnie rozwijany, ale może otrzymywać aktualizacje zależności, aby ułatwić migrację z Astyanax.

W miejsce Astyanax rozważ użycie DataStax Java Driver for Apache Cassandrawykorzystanie DataStax Java Driver for Apache Cassandrawykorzystanie DataStax Java Driver for Apache Cassandrawykorzystanie DataStax Java Driver for Apache Cassandra, który jest aktywnie rozwijany i zawiera wiele lekcji wyciągniętych z Astyanax. Ponieważ sterownik DataStax obsługuje tylko protokół CQL (ponieważ Apache Cassandra 4.x porzuci protokół Thrift), będziesz musiał zaktualizować wszystkie swoje zapytania oparte na Thrift do zapytań CQL.

Masz możliwość kontynuowania dostępu do starszych rodzin kolumn poprzez opcję CQL „with compact storage”. Jednak w większości (wszystkich?) przypadków użycia, starsza opcja kompaktowego przechowywania zajmuje więcej miejsca niż nowa domyślna opcja przechowywania CQL, więc lepiej jest przenieść swoje dane do nowej domyślnej opcji przechowywania.

Ta wersja Astyanaxa usuwa swoją zależność od cassandra-all, więc możesz opcjonalnie wybrać dowolną wersję cassandra-unit do testowania jednostek/integracji z różnymi wersjami Cassandry. Podczas aktualizacji do tej wersji Astyanax może być konieczne:

  • Wyraźne dodanie wszelkich zależności przechodnich od cassandra-all, od których wcześniej byłeś po cichu zależny za pomocą dodatków przejściowych Astayanax.
  • Jeśli używałeś wewnętrznych funkcji Astyanax, które (nieumyślnie) publicznie odsłoniły klasy cassandra-all, musisz albo:
    • Opcja A (najlepsza): Migrować z Astyanax do DataStax Java Driver for Apache Cassandra.
    • Opcja B (druga najlepsza): Używaj tylko publicznych interfejsów astyanax-core (żaden z nich nie eksponuje klas cassandra-all).
    • Opcja C: Przełącz swoje obiekty z „org.apache.cassandra” na zacieniony „com.netflix.astyanax.shaded.org.apache.cassandra „pakiet Astyanax teraz zależy od.

Przegląd

Astyanax jest wysokopoziomowym klientem Java dla Apache Cassandra.Apache Cassandra jest wysoce dostępną bazą danych zorientowaną na kolumny.

Cechy

Szybki przegląd można znaleźć na blogu Netflix Tech Blog. Niektóre funkcje zapewniane przez tego klienta:

  • Wysoki poziom, prosty interfejs obiektowy do Cassandry.
  • Zachowanie fail-over po stronie klienta.
  • Absstrakcja puli połączeń. Implementacja puli połączeń typu round robin.
  • Abstrakcja monitorowania w celu uzyskania powiadomień o zdarzeniach z puli połączeń.
  • Pełna hermetyzacja bazowego API Thrift i struktur.
  • Automatyczne ponawianie prób w przypadku awarii hostów.
  • Automatyczne wykrywanie dodatkowych hostów w klastrze.
  • Zawieszanie hostów na krótki okres czasu po kilku timeoutach.
  • Anotacje upraszczające korzystanie z kolumn złożonych.

Dokumentacja

Szczegółową dokumentację funkcji i użycia Astyanaxa można znaleźć na wiki i w przewodniku Getting Start.

IntelliJ: obecnie (czerwiec 2018) IntelliJ ma błąd, który renderuje błąd „unfound” dla pakietów przeniesionych za pośrednictwem anothermodule w tym samym projekcie (np.np. klasy cieniowane z astyanax-cassandra-all-shaded).Wpływa to tylko na sam projekt Astyanax w IntelliJ; Astyanax nadal buduje się doskonale za pośrednictwem Gradle.Użytkownicy Astyanax są nienaruszeni. Aby uzyskać więcej szczegółów zobacz:

Artefakty

Słoiki Astyanax są publikowane w Maven Central. Począwszy od astyanax 1.56.27 projekt został podzielony na wiele podprojektów, z których każdy musi być wciągany osobno.

Wymagane artefakty

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-thrift lub astyanax-cql Wybierz protokół Thrift lub CQL. Uwaga Cassandra 4.x+ porzuca obsługę protokołu Thrift.

Transitive artifacts (zależności automatycznie dodawane przez wymagany artefakt)

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-core Publiczny interfejs astyanax.
com.netflix.astyanax astyanax-cassandra Cechy specyficzne dla Cassandry współdzielone przez astyanax-thrift i astyanax-cql
com.netflix.astyanax astyanax-cassandra-all-shaded Zacieniowana wersja cassandra-all dla kilku klas używanych przez astyanax-cassandra, więc projekty mogą swobodnie wybierać dowolne wersje cassandra-unit do testów jednostkowych/integracyjnych z nowszymi wersjami Cassandry. Ukrywa zależność Astyanax od cassandra-all poprzez refaktoryzację klas „org.apache.cassandra” na „com.netflix.astyanax.shaded.org.apache.cassandra”.

Optional artifacts

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-contrib Opcjonalna integracja z innymi powszechnie używanymi modułami Netflix OSS.
com.netflix.astyanax astyanax-queue Wdrożenie kolejki wspierane przez pamięć masową Cassandra. Używaj na własne ryzyko — Cassandra może być bardzo złym silnikiem pamięci masowej dla kolejek. Jeśli nalegasz na używanie Cassandry do kolejek, ustaw bardzo krótki TTL i użyj TimeWindowCompactionStrategy (TWCS).
com.netflix.astyanax astyanax-entity-mapper
com.netflix.astyanax astyanax-recipes Opcjonalne implementacje niektórych popularnych wzorców. Używaj na własne ryzyko; niektóre z nich są popularne, ale nie pasują do Cassandry w wielu przypadkach użycia (patrząc na ciebie, AllRowsReader).

Historia starożytna

Astyanax był synem Hektora, który był bratem Kasandry w mitologii greckiej.

Historia współczesna

Ta praca była początkowo zainspirowana Hektorem.

Leave a Reply