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