我希望你一切都好。我目前正在使用一个cassandra数据库,我几乎完成了它。目前我正在部署我的服务,发生了一个错误。为了在我的nestjs后端最好地使用cassandra,我使用框架https://github.com/ifaim/nestjs-express-cassandra这在后端与框架https://github.com/masumsoft/express-cassandra一起工作(这是积极更新和大量使用)。但现在的问题是,根据datastax(我的cassandra db托管在那里)的文档,我必须存款一个secureConnectBundle才能连接到我的数据库。
然而,我在网上找到的关于这个的例子很少,一般来说,我找到了更多的例子来说明如何在没有secureConnectBundle的情况下连接到你的datastax数据库。到目前为止,我没有成功,所以我在这里问。我真的希望我不必改变框架,因为这可能意味着这个项目的结束。
export const cassandraOptions: ExpressCassandraModuleOptions = {
clientOptions: {
contactPoints: [
'e68eb980-c5c3-47fa-a423-472652519805-europe-west1.db.astra.datastax.com',
],
protocolOptions: { port: 9042 },
keyspace: 'partii',
queryOptions: {
fetchSize: 100,
consistency: 1,
},
authProvider: new auth.PlainTextAuthProvider('X', 'X'),
},
ormOptions: {
createKeyspace: false,
defaultReplicationStrategy: {
class: 'SimpleStrategy',
replication_factor: 1,
},
migration: 'safe',
},
};
4条答案
按热度按时间py49o6xq1#
您似乎正在使用DataStax Astra DB。DataStax Astra DB没有连接到Cassandra默认的9042端口,而是连接到29042端口。然而,即使是正确的,您仍然必须沿着SSL信息,手动获得正确的信息是棘手的。这就是为什么推荐参考安全连接包是简单的途径。
你是对的,这里似乎没有任何例子说明如何在Express Cassandra上使用Astra DB。好消息是Express Cassandra看起来像是在下面使用了Cassandra nodejs驱动程序。这意味着客户端选项很可能是相同/相似的。尝试如下操作:
如果这不起作用,也许可以用上面使用的
authProvider
替换credentials
行。3hvapo4f2#
您只能通过DevOps API或GUI创建密钥空间。您可能需要按照here提供的示例进行操作。
s5a0g9ez3#
在此期间,我决定手动设置SSL连接,它工作正常。现在我只需要修复错误。
apollo.model.tablecreation.dbschemaquery:检索数据库表“NoHostAvailableError”的模式时出错:尝试查询的所有主机均失败。尝试的第一个主机,34.79.132.94:29080:错误[ERR_TLS_CERT_ALTNAME_INVALID]:主机名/IP与证书的别名不匹配:IP:34.79.132.94不在证书列表中:。请参阅内部错误。
sr4lhrrt4#
问题解决了。