Tag: cassandra

nodejs – cassandra-client错误:所有连接都不健康

当我尝试使用cassandra-client从cassandra检索/更新数据时,我不断收到此错误。 { [Error: All connections are unhealthy.] connectionInfo: { host: 'localhost', port: 9160, keyspace: 'keyspace1', user: undefined, pass: undefined, use_bigints: false, timeout: 4000, log_time: false, staleThreshold: 10000 } } 对于这个错误的含义还没有一个线索。

卡桑德拉不一致

我们正在运行具有3个节点和2的复制因子的cassandra集群。 我们的nodejs服务器是这个群集查询的唯一位置。 我们正在使用datastax node.js驱动程序创build一个客户端,如下所示: var client = new cassandra.Client({contactPoints: [<contact point>], keyspace: 'test_keyspace', queryOptions: {consistency: cassandra.types.consistencies.two}}); 我的理解是这个一致性参数设置为2应该使我们的读/写一致,只要我们等待一个响应,然后再继续下一个查询,但是这不会发生。 如果我们在请求数据之前等待响应,是否真的如上所述应该保证一致性? 有没有其他地方可能会有参数设置,可能会导致不一致的查询? cassandra v2.2.4 nodejs驱动程序版本v3.0.0 编辑 – 添加我在做什么的例子: 表: test_keyspace.users(id uuid,username text,join_date timestamp,PRIMARY KEY(id)) test_keyspace.username(username text,uuid id,PRIMARY KEY(username,id)) 在创build用户: 1)检查用户名没有被采取 var query = "SELECT * FROM test_keyspace.username WHERE username=?"; db.execute(query, [username], function(err, result){ if(err){ //fail check – api […]

用于处理Dynamodb和Cassandra的NodeJS抽象服务

所以目前我们在我们的项目中使用亚马逊dynamodb。 但是我们最终希望用Cassandrareplace它(因为我们需要它来获得盒子解决scheme) 是否有可能写一些抽象服务,将来很容易重新使用Cassandra? 我们使用nodejs express框架来构build后端微服务。

Cassandra – 插入时使用错误的时区

这是我试图插入到我的数据库的date: '1970-01-18T00:00:00+00:00' 但是当我查看数据库中的条目时,它的背后是8个小时: 1970-01-17 16:00:00 我的Ubuntu系统上使用的时区是UTC。 我通过在terminalinputdate检查输出: Tue Oct 4 00:00:53 UTC 2016 我正在使用node.js,这实际上是用来插入的代码: const Cassandra = require( 'cassandra-driver' ); const Promise = require( 'bluebird' ); const db = Promise.promisifyAll( new Cassandra.Client({ contactPoints: ['127.0.0.1'], keyspace: 'project' }) ); let date_created = '1970-01-18T00:00:00+00:00'; db.executeAsync( "INSERT INTO posts (id, date_created) VALUES (?, ?);", [someID, date_created], {prepare: true} […]

使用具有规模的nodejsstream式传输cassandra数据

我有一个要求使用nodejs读取存储在cassandra中的数百万条logging。 我已经准备好了stream式nodejs服务,可以从cassandrastream中读取数据stream,并将数据推送到分析服务器(再次使用stream式服务)。 但是,我不确定如何实现nodejs层的横向扩展,其中nodejs应用程序的多个实例从cassandra没有DUPLICATION读取并将其提供给分析服务器。 任何帮助,这将有很大的帮助。 谢谢。

公开在Kubernetes上运行的Cassandra

我正在Kubernetes上运行Cassandra(3个实例),并想将其暴露给外部,我的应用程序还没有在Kubernetes中。 所以我策划了一个负载平衡的服务,如下所示: apiVersion: v1 kind: Service metadata: namespace: getquanty labels: app: cassandra name: cassandra annotations: kubernetes.io/tls-acme: "true" spec: clusterIP: ports: – port: 9042 name: cql nodePort: 30001 – port: 7000 name: intra-node nodePort: 30002 – port: 7001 name: tls-intra-node nodePort: 30003 – port: 7199 name: jmx nodePort: 30004 selector: app: cassandra type: LoadBalancer 这是结果是: NAME […]

如何使nodejs cassandra驱动程序在Lambda中工作?

Lambda没有返回callback函数,如果我没有closures连接,但如果我closures连接第二次function不工作,我得到错误:“关机后关机不支持”代码: client.connect(function(err) { console.log(err); const query = 'SELECT * FROM table LIMIT 1'; client.execute(query, [], {}, function(err, result) { if (err) { console.log("there was an err"); console.log(err); process.exit(); } else { client.shutdown(function() { callback(null, {}); }); } }); }); 我知道这是它的工作方式: http : //docs.datastax.com/en/developer/nodejs-driver/latest/faq/#should-i-shut-down-the-pool-after-executing-一个问题 但有没有解决scheme来pipe理Lambda上的连接? 更多关于Lambda容器重用的信息: https : //aws.amazon.com/blogs/compute/container-reuse-in-lambda/

在Windows虚拟机上连接Node.js和Cassandra时出错

我在将Node.js连接到Cassandra时遇到问题。 我得到的错误如下: Error: All host(s) tried for query failed. First host tried, 127.0.0.1:9042: Error socket was closed. See innerErrors. 我不确定innerErrors是什么意思,是某种types的日志? 我是Cassandra和Node.js的新手,所以我不确定发生了什么事情。 我为端口9042和9160创build了一个入站规则,这些端口是Cassandra使用的端口。 我没有通过CQLSH和DevCenter连接的问题。 我不知道使用虚拟机是否会造成这种情况。 这是我用来testing这个,我创build的一些表上的node.js代码: var cassandra = require('cassandra-driver'); var client = new cassandra.Client({contactPoints: ['127.0.0.1'], keyspace: 'space'}); var query = "SELECT * FROM space_table"; client.execute(query, function(err, results) { assert.ifError(err); console.log(result.rows[0].pk); }); 以下是我正在使用的: 具有Virtual Box的Windows 7 […]

Cassandra Node.js ORM最佳实践

目前,我们正在使用cassandra驱动程序,执行标准查询,并在我们的DAL和BL图层中访问“原始”结果。 我们的应用程序应该支持数百万用户,每个请求的平均剂量为3读取数据库,我们有大约30个模型。 我们正在考虑使用某种ORM库,将模型映射到我们自己的模型中,并且将每个原始数据处理为一个代表性的对象,或者处理每个模型(原始数据)的获取,设置和创build的简单函数。 我们的用例是封装“原始”数据结构的处理,避免代码重复,防止模式结构错误和强制validation。 我们非常想知道对性能的影响,未来的灵活性以及ORM lib / framworks的普及程度。 在这个主题中获得最佳实践(和参考)是有帮助的,因为我们不知道使用ORM层比cassandra有什么影响。

Cassandra操作超时

操作超时 – 只收到0个响应。',info:'表示来自服务器的错误信息',代码:4608,一致性:1,收到:0,blockFor:1,isDataPresent:0,… 我每天都会得到这个错误,试图在我的cassandra集群上执行SELECT查询。 我们在m1.large aws实例上有一个3节点的集群。 他们大部分时间都是成功的,但每隔一段时间我们就会得到上述的错误。 我们还没有生产,所以桌子都很小。 我们没有任何超过几千行的表,并且相同的查询在其他时间完成。 提高时间不是一个选项,我不相信它会解决问题(查询应该是短的,错误中的查询是不一样的每次) 这可能是一些连接在节点或networking问题之间陈旧? 什么是testing这些最好的方法? 我也只在客户端看到这个错误,在cassandra日志中有没有我应该看到的地方?