一个完整的标准的cassandra连接代码(java版)

来源:互联网 发布:淘宝如何开虚拟店 编辑:程序博客网 时间:2024/06/06 03:59

有个网友读了我前面几篇关于cassandra的文章后,向我反映,还不知道怎么安装cassandra呢,我一想也是啊,都没安装,怎么开始其他的呢,所以想安装顺序,从开始的开始讲。今天一个同事问我关于cassandra的java api,遂整理的此篇,可能有不完善的地方,敬请斧正。

需要引入的pom依赖:

<dependency><groupId>com.datastax.cassandra</groupId><artifactId>cassandra-driver-core</artifactId><version>3.1.1</version></dependency><dependency><groupId>com.datastax.cassandra</groupId><artifactId>cassandra-driver-extras</artifactId><version>3.1.1</version></dependency>


        String[] hosts = new String[]{"192.168.1.1", "192.168.1.2", "192.168.1.3"};//cassandra主机地址        //认证配置        AuthProvider authProvider = new PlainTextAuthProvider("ershixiong", "123456");        LoadBalancingPolicy lbp = new TokenAwarePolicy(                DCAwareRoundRobinPolicy.builder().withLocalDc("myDC").build()        );        //读超时或连接超时设置        SocketOptions so = new SocketOptions().setReadTimeoutMillis(3000).setConnectTimeoutMillis(3000);        //连接池配置        //PoolingOptions poolingOptions = new PoolingOptions().setConnectionsPerHost(HostDistance.LOCAL, 2, 3);        //集群在同一个机房用HostDistance.LOCAL   不同的机房用HostDistance.REMOTE   忽略用HostDistance.IGNORED        PoolingOptions poolingOptions= new PoolingOptions()                .setMaxRequestsPerConnection(HostDistance.LOCAL, 64)//每个连接最多允许64个并发请求                .setCoreConnectionsPerHost(HostDistance.LOCAL, 2)//和集群里的每个机器都至少有2个连接                .setMaxConnectionsPerHost(HostDistance.LOCAL, 6);//和集群里的每个机器都最多有6个连接        //查询配置        //设置一致性级别ANY(0),ONE(1),TWO(2),THREE(3),QUORUM(4),ALL(5),LOCAL_QUORUM(6),EACH_QUORUM(7),SERIAL(8),LOCAL_SERIAL(9),LOCAL_ONE(10);        //可以在每次生成查询statement的时候设置,也可以像这样全局设置        QueryOptions queryOptions = new QueryOptions().setConsistencyLevel(ConsistencyLevel.ONE);        //重试策略        RetryPolicy retryPolicy = DowngradingConsistencyRetryPolicy.INSTANCE;        int port = 9042;//端口号        String keyspace = "keyspacename";//要连接的库,可以不写        Cluster cluster = Cluster.builder()                .addContactPoints(hosts)                .withAuthProvider(authProvider)                .withLoadBalancingPolicy(lbp)                .withSocketOptions(so)                .withPoolingOptions(poolingOptions)                .withQueryOptions(queryOptions)                .withRetryPolicy(retryPolicy)                .withPort(port)                .build();        Session session = cluster.connect(keyspace);



参考:http://docs.datastax.com/en/developer/java-driver-dse/1.2/upgrade_guide/migrating_from_astyanax/queries_and_results/

http://zhaoyanblog.com/archives/547.html

阅读全文
0 0
原创粉丝点击