我在Cassandra中使用Node JS,我想知道最好的交互方式是什么。我有多个与Cassandra交互的模块,我想知道它是否更好
此Web应用程序使用Cassandra处理大多数请求。
答案 0 :(得分:2)
我将池连接并回收它们而不是使用您列出的其中一个选项。这样你就不需要销毁已经创建的连接。我唯一感到厌倦的是拥有太大的游泳池,所以一定要设置一个明智的门槛。
这样的事情:
no connections are available in pool
create connection (add it back once finished using it)
connections are available in pool
fetch connection from pool
选择游泳池而不是硬编码的原因:
Cluster cluster = Cluster.builder().addContactPoints("localhost").build();
long start = System.currentTimeMillis();
Session session = cluster.connect();
System.out.println(String.format("Took %s ms", System.currentTimeMillis() - start));
输出: 490 ms 。
答案 1 :(得分:2)
我建议您使用DataStax Node.js driver for Cassandra,它具有连接池和透明故障转移功能,您只需要执行查询,它将为您处理剩余的查询。
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({
contactPoints: ['host1', 'host2'],
keyspace: 'ks1'
});
var query = 'SELECT email, last_name FROM user_profiles WHERE key=?';
//the driver will handle connection pool and failover
client.execute(query, ['guy'], function(err, result) {
assert.ifError(err);
console.log('User profile email ' + result.rows[0].email);
});
免责声明:我是项目的活跃开发者