データベースとしてcassandraを使用してREST APIを構築しようとしていますが、ドキュメントやサンプルがオンラインではありません。datastax java driver 3.0.0を使用しています。以下はcasandraでJava REST APIを構築する
public class CassandraDBUtil {
private Cluster cluster;
private PoolingOptions options;
private Session session;
public void connect(String node) {
options = new PoolingOptions(). setMaxRequestsPerConnection(HostDistance.LOCAL, 32768);
cluster = Cluster.builder()
.addContactPoint(node)
.withAddressTranslator(new EC2MultiRegionAddressTranslator())
.withPoolingOptions(options)
.build();
Metadata metadata = cluster.getMetadata();
System.out.printf("Connected to cluster: %s\n", metadata.getClusterName());
for (Host host : metadata.getAllHosts()) {
System.out.printf("Datacenter: %s; Host: %s; Rack: %s\n", host.getDatacenter(), host.getAddress(),
host.getRack());
}
session = cluster.connect("dropalletcassdb");
}
public Session getSession(){
if(this.cluster != null){
System.out.println("@@@@ Returning an old session");
return this.session;
}else{
System.out.println("@@@ Creating a new session");
connect("127.0.0.1");
return this.session;
}
}
、別のクラス内の関数である上記のコードで
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public List<ActiveBid> getTrackInJSON() {
logger.info("LoginApi: Returning the active bid");
Session session = cassDB.getSession();
String cqlStatement = "select * from active_bid where username='xyz'";
for (Row row : session.execute(cqlStatement)) {
System.out.println(row.toString());
}
session.close();
ActiveBid activeBid = new ActiveBid("3d673111-894d-4fcb-84f7-7d027a9a2419", "XXX-XXX-XXXXXXX", "/p/project_id=1367777", 25, new BigInteger("125"), new BigInteger("150"), "2016-06-04 18:32:37");
List<ActiveBid> activeBidList = new ArrayList<ActiveBid>();
activeBidList.add(activeBid);
return activeBidList;
}
、私は、クラスタとセッションを構築するutilのクラスを持っているし、私が得る別のクラスにgetTrackInJSONを持っていますhttp://localhost:8080/cassExample/rest/getが要求されたときに呼び出されます。/getを呼び出すたびに、クラスタとセッションが構築され、平均応答時間は500msです。私は何が間違っているのかわからない、私は結果セットを返答していない、私は嘲笑された返答とその多くの時間を取って返す。誰かが私を正しい方向に向けることができますか?