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

有个网友读了我前面几篇关于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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值