0

我正在对 Cassandra 使用 express-Cassandra ORM 和 DB 操作。

环境:版本:2.1.1 nodejs 8.9.1 cassandra:3.9 Cent OS:6.0

面对这个问题,在 Cassandra 中初始化模型时运行 nodejs 时,我需要多次重启 nodejs 以初始化所有模块。

出现超时错误:原因:{ apollo.model.tablecreation.dbindexcreate:在数据库表上创建索引时出错 - > NoHostAvailableError:所有主机都尝试查询失败。第一个主机尝试,127.0.0.1:9042:OperationTimedOutError:主机 127.0.0.1:9042 在超时 12000 毫秒之前没有回复。请参阅内部错误

因此,在重新启动多重时间后,我能够完成 cassandra 初始化。

以及如何解决这个问题,或者如何找到更多日志的位置以及这个内部错误是什么?

谢谢,詹姆斯

4

1 回答 1

1

您可能需要socketOptions.readTimeout在您的 clientOptions 中使用,如下所示:

models.setDirectory( __dirname + '/models').bind({
    clientOptions: {
        contactPoints: ['127.0.0.1'],
        protocolOptions: { port: 9042 },
        keyspace: 'mykeyspace',
        queryOptions: { consistency: models.consistencies.one },
        socketOptions: { readTimeout: 0 }
    },
    ormOptions: {
        defaultReplicationStrategy : {
            class: 'SimpleStrategy',
            replication_factor: 1
        },
        migration: 'safe'
    }
},
function(err) {
    if(err) throw err;
});

你可以看看这个讨论:https ://github.com/masumsoft/express-cassandra/issues/156

于 2018-03-10T10:05:17.237 回答