我使用以下代码仅连接到 1 个键空间:
这是`/config/db.ts:
import cassandra from "cassandra-driver";
class Cpool {
static _pool : cassandra.Client;
static connect(options : any){
this._pool = new cassandra.Client(options);
}
static execute(query: string, params?: cassandra.ArrayOrObject | undefined, options?: cassandra.QueryOptions | undefined)
{
return this._pool.execute(query, params, options);
}
}
export { Cpool };
下面的代码是index.ts
:
const default_options = {
contactPoints: [process.env.CONTACT_POINTS],
localDataCenter: process.env.LOCAL_DATA_CENTER,
keyspace: process.env.KEYSPACE,
};
try {
await Cpool.connect(default_options);
console.log("Connected to Cassandra");
} catch (err) {
console.log(err);
}
现在我想要有 2 个或更多密钥空间,但不知道应该为每个密钥空间创建一个新客户端,还是只能使用 1 个客户端连接到多个密钥空间?如何?
当数据库中有多个键空间时,您需要通过显式指定键空间名称来完全限定查询中的表。例如:
query = "SELECT ... FROM keyspace_name.table_name WHERE ..."
or:
query = "INSERT INTO keyspace_name.table_name ... VALUES ..."
为了获得最佳实践,仅使用一个Client
实例并在应用程序的生命周期中重用它。干杯!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)