ich eine RESTful API mit Java und Cassandra 2.x bauen verwenden möchte (auf Jersey-Framework). Ich bin neu in beiden Technologien, also möchte ich Sie fragen, ist das der richtige Weg, Cassandra-Treiber zu integrieren und zu teilen.Was ist der richtige Weg Cassandra Treiber von einer Web-Anwendung
0. Holen Sie sich den Treiber obwohl Maven
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.0.3</version>
</dependency>
1. Funktionalität Wrap-Treiber mit einer Client-Klasse:
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. ich den Client in ContextListener insatiate und Aktie es aber Context-Attribut
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. Nun habe ich den Client aus dem Kontext des Servlets und es verwenden,
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") + "|";
}
Ist das der richtige Weg, es (beide von Leistung und architektonischer Sicht) zu tun?
Voll Beispiel verfügbar auf: https://github.com/lukaszkujawa/jersey-cassandra
Hallo, ich frage mich, wenn Sie mir die beste Art und Weise sagen könnte, die Sie in Ihrer Web-App angenommen? – niaomingjian