Thrift是一个驱动车API,比较低级, cassandra官方文档一直在推荐高级点的去开发应用,但是我个人认为,还是先把Thrift原理搞明白,有利于进一步学习.
代码取自the definitive guide cassandra,有改动,因为书里面代码太老了,不适应1.2.1
使用Thrift需要的包就在安装cassandra里面的lib文件夹里面,放在java里
这里我假设已经了解 副本放置策略,副本因子等,
下面是我的一个连接类,用于建立Cassandra链接并返回一个client实例
package com.ovgu.cassandra.util;
import org.apache.cassandra.thrift.Cassandra;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
public class Connector {
TTransport tr = new TSocket(Constants.HOST, Constants.PORT);
private static final Logger log = Logger.getLogger(Connector.class);
private Cassandra.Client client;
/**
*
* @return connect to a client without specify a keyspace, can spacify a
* keyspace later with setKeyspace();
*
* @throws TTransportException
*/
public Cassandra.Client connect() throws TTransportException {
TFramedTransport tf = new TFramedTransport(tr);
TProtocol proto = new TBinaryProtocol(tf);
client = new Cassandra.Client(proto);
tr.open();
log.debug(Constants.starLine + "connect to the server port:+"
+