Voglio creare un'API RESTful con Java e Cassandra 2.x (su framework Jersey). Sono nuovo di entrambe le tecnologie, quindi vorrei chiederti è il modo corretto di integrare e condividere il driver Cassandra.Qual è il modo giusto per utilizzare il driver Cassandra da un'applicazione Web
0. Prendi il conducente se Maven
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.0.3</version>
</dependency>
funzionalità 1. guidatore Avvolgere con una classe Cliente:
package com.example.cassandra;
import com.datastax.driver.core.*;
public class Client {
private Cluster cluster;
private Session session;
public Client(String node) {
connect(node);
}
private void connect(String node) {
cluster = Cluster.builder()
.addContactPoint(node)
.build();
session = cluster.connect();
}
public ResultSet execute(String cql3) {
return session.execute(cql3);
}
public void close() {
cluster.close();
}
}
2. I insatiate il cliente in ContextListener e condividere tuttavia attributo contesto
package com.example.listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.example.cassandra.Client;
public class ExampleContextListener implements ServletContextListener {
Client cassandraClient;
public void contextInitialized(ServletContextEvent servletContextEvent) {
ServletContext ctx = servletContextEvent.getServletContext();
cassandraClient = new Client(ctx.getInitParameter("DBHost"));
ctx.setAttribute("DB", cassandraClient);
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
cassandraClient.close();
}
}
3. Ora ho il client dal contesto di servlet e utilizzarlo
Client client = (Client) context.getAttribute("DB");
client.execute("USE testspace;");
ResultSet rs = client.execute("SELECT * from users;");
for (Row row : rs) {
output += row.getString("lname") + "|";
}
E 'questo il modo corretto per farlo (sia da prestazioni e punto di vista architettonico)?
esempio completa accessibile: https://github.com/lukaszkujawa/jersey-cassandra
Ciao, mi chiedevo se mi si potrebbe dire il modo migliore l'hai adottato nella vostra web app? – niaomingjian