Sto cercando il modo corretto di utilizzare il driver Cassandra C# ufficiale (2.0) in un progetto API Web ASP.NET, utilizzato da un sito ad alto traffico.Modo corretto per connettersi a Cassandra in un'applicazione web/api
Ho fatto una semplice applicazione di esempio che si connette a un cassandra db usando le seguenti classi:
public class CassandraContext
{
private static ISession _session;
public ISession Session { get { return _session; } }
public CassandraContext()
{
var cluster = Cluster.Builder().AddContactPoint("cassandra.some.server").Build();
_session = cluster.Connect("keyspace");
}
}
E nel mio controller che sto utilizzando in questo modo:
public class TestController : ApiController
{
static CassandraContext db = new CassandraContext();
public IHttpActionResult Get()
{
var result = new List<string>();
var rowSet = db.Session.Execute(@"SELECT * FROM ""Test"";");
foreach (var row in rowSet)
result.Add(row.GetValue<string>("data"));
return Ok<List<string>>(result);
}
}
Qualsiasi esempio, le informazioni saranno molto utili.
Grazie.
Quel codice sembra chiamerà ** Cluster.Bulder() ** e ** cluster.Connect() ** ogni volta che si accede a ProductsDAO - è tutto ok? – Martin
Ho avuto in questo modo solo per cercare di tenerlo corto. All'interno di CassandraDAO, potresti avere un getter protetto per 'session', e chiamarlo' connect' solo se la sessione è nullo. Farò una modifica per riflettere questo. – Aaron