我正在使用最新版本的 DSE Enterprise。我对图形功能感兴趣。我目前有一个项目在 Titan 上运行,这个开源图形数据库启发了 DSE Graph,我正在尝试将 DSE Graph 评估为替代数据库,因为 Titan 缺少许多管理和操作功能。
我的问题如下:
尝试使用 nodejs 驱动程序在 datastax 集群上执行图形查询时,我有一个奇怪的行为。查询正在运行(我可以添加或删除顶点),但在客户端(nodejs 驱动程序)我总是在 5 到 7 秒后收到连接超时错误,如下所示:
{
"statusCode": 200,
"body": {
"info": {
"queriedHost": "xx.xx.xx.xx:9042",
"triedHosts": {
"xx.xx.xx.xx:9042": {
"message": "Connection timeout",
"info": "Cassandra Driver Error"
}
},
"achievedConsistency": 10
},
"length": 1,
"pageState": null
}
}
当我查看 datastax studio 时,我的查询正在工作。我可以看到新添加的顶点...
以下是用于调用 dse graph 的代码:
'use strict';
const dse = require('dse-driver');
const dseGraph = require('dse-graph');
const client = new dse.Client({
contactPoints: ['xx.xx.xx.xx'] ,
protocolOptions: {port: 9042},
authProvider: new dse.auth.DsePlainTextAuthProvider("xxx","xxx"),
graphOptions: { name: 'test' }
});
module.exports.create = (event, context, callback) => {
let response = {
statusCode: 200
};
client.executeGraph("graph.addVertex(label,'user','email','c@b');").then(function(users) {
response.body=users;
client.shutdown();
callback(null, response);
}).catch(function(err) {
response.statusCode=400;
response.body=err;
client.shutdown();
callback(null, response);
});
};
问题可能出在我的集群配置中吗?
这是我的拓扑:
- 一个集群
- 3个数据中心
- 图的 1 个数据中心,有 2 个节点
- 1 个用于搜索的数据中心,带有 1 个节点
- 1 个用于分析的数据中心,带有 1 个节点
所有设置均为默认设置。我通过 OpsCenter 安装了集群,我的所有节点都是 ec2 实例(m4.xlarge)。
您知道为什么查询有效,但我在成功回调中收到这条奇怪的消息吗?
问候,
图菲奇·扎耶德