首页 文章

创建表时Express-Cassandra OperationTimedOutError

提问于
浏览
0

我正在使用快速Cassandra ORM和DB操作与Cassandra .

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

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

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

因此,重新启动多个时间后,我可以完成cassandra初始化 .

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

谢谢,詹姆斯

1 回答

  • 0

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

    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

相关问题