• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Netflix/astyanax: Cassandra Java Client

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

Netflix/astyanax

开源软件地址:

https://github.com/Netflix/astyanax

开源编程语言:

Java 99.9%

开源软件介绍:

Astyanax

Deprecation

Astyanax has been retired and is no longer under active development but may receive dependency updates to ease migration away from Astyanax.

In place of Astyanax consider using DataStax Java Driver for Apache Cassandra which is under active development and encapsulates a lot of lessons learned from Astyanax. Since the DataStax driver supports only CQL protocol (because Apache Cassandra 4.x will drop the Thrift protocol), you’ll have to update all of your Thrift-based queries to CQL queries.

You have the option to continue accessing legacy column families via the CQL “with compact storage” option. However in most (all?) use cases the legacy compact storage option actually takes more space than the new default CQL storage option, so you’re really better off also migrating your data to the new default storage option.

This version of Astyanax shades its dependency on cassandra-all so you can optionally select any version of cassandra-unit you like for unit/integration testing with different versions of Cassandra. When upgrading to this version of Astyanax you may need to:

  • Explicitly add any cassandra-all transitive dependencies you previously silently depended on via Astayanax transitives.
  • If you were using internal features of Astyanax that (unintentionally) publicly exposed cassandra-all classes, you must either:
    • Option A (best): Migrate away from Astyanax to DataStax Java Driver for Apache Cassandra.
    • Option B (second-best): Use only astyanax-core public interfaces (none of them expose cassandra-all classes).
    • Option C: Switch your objects from "org.apache.cassandra" to the shaded "com.netflix.astyanax.shaded.org.apache.cassandra" package Astyanax now depends on.

Overview

Astyanax is a high level Java client for Apache Cassandra. Apache Cassandra is a highly available column oriented database.

Features

A quick overview can be found at the Netflix Tech Blog. Some features provided by this client:

  • High level, simple object oriented interface to Cassandra.
  • Fail-over behavior on the client side.
  • Connection pool abstraction. Implementation of a round robin connection pool.
  • Monitoring abstraction to get event notification from the connection pool.
  • Complete encapsulation of the underlying Thrift API and structs.
  • Automatic retry of downed hosts.
  • Automatic discovery of additional hosts in the cluster.
  • Suspension of hosts for a short period of time after several timeouts.
  • Annotations to simplify use of composite columns.

Documentation

Detailed documentation of Astyanax's features and usage can be found on the wiki and the getting started guide.

IntelliJ: currently (June 2018) IntelliJ has a bug which renders an "unfound" error for packages relocated via another module in the same project (e.g. shaded classes from astyanax-cassandra-all-shaded). This affects only the Astyanax project itself within IntelliJ; Astyanax still builds perfectly fine via Gradle. Astyanax users are unaffected. For more details see:

Artifacts

Astyanax jars are published to Maven Central. As of astyanax 1.56.27 the project has been split into multiple sub project, each of which needs to be pulled in separately.

Required artifacts

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-thrift or astyanax-cql Choose Thrift or CQL protocol. Note Cassandra 4.x+ drops support for Thrift protocol.

Transitive artifacts (dependencies automatically added via a required artifact)

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-core Astyanax's public interface.
com.netflix.astyanax astyanax-cassandra Cassandra-specific features shared by astyanax-thrift and astyanax-cql
com.netflix.astyanax astyanax-cassandra-all-shaded Shaded version of cassandra-all for the few classes used by astyanax-cassandra so projects are free to select arbitrary versions of cassandra-unit for unit/integration testing against newer versions of Cassandra. Hides Astyanax's dependency on cassandra-all by refactoring "org.apache.cassandra" classes to "com.netflix.astyanax.shaded.org.apache.cassandra".

Optional artifacts

GroupID/Org ArtifactID/Name Desc
com.netflix.astyanax astyanax-contrib Optional integration with other commonly-used Netflix OSS modules.
com.netflix.astyanax astyanax-queue Queue implementation backed by Cassandra storage. Use at your own risk -- Cassandra can be a very bad storage engine for queues. If you insist on using Cassandra for queues, set a very short TTL and use TimeWindowCompactionStrategy (TWCS).
com.netflix.astyanax astyanax-entity-mapper
com.netflix.astyanax astyanax-recipes Optional implementations of some common patterns. Use at your own risk; some of these are popular but not well-suite for Cassandra for many use cases (looking at you, AllRowsReader).

Ancient History

Astyanax was the son of Hector who was Cassandra's brother in greek mythology.

Modern History

This work was initially inspired by Hector.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap