哪种技术可以与Cassandra以及NodeJS连接?

时间:2016-09-09 19:37:59

标签: node.js mongodb apache-spark architecture cassandra

我正在使用spark streaming阅读TCP server,然后将数据插入Cassandra,我必须进一步推送到用户界面,推送我决定去{{1} }。但我没有得到任何可以与Cassandra以及NodeJS交流的技术。下面是我的架构,我无法找到可以替换NodeJS的技术。如果可以直接将数据从Mongo推送到NodeJS,我也可以使用?更改Cassandra。但截至目前,我正在使用Cassandra,因为它本身支持MongoDB

enter image description here

2 个答案:

答案 0 :(得分:2)

查看datastax nodejs-cassandra驱动程序:https://github.com/datastax/nodejs-driver项目。这有cassandra行流和管道功能,您可以使用它将cassandra数据推送到节点,进程,然后根据所需的体系结构通过websockets导出。

让您的流客户端保持打开状态 - 这需要作为持久性节点服务器运行来处理错误 - 这样的事情应该会获取新的cassandra数据:

var streamCassandra = function(){
  client.stream('SELECT time, val FROM temperature WHERE station_id=', ['abc'])
  .on('readable', function () {
   //readable is emitted as soon a row is received and parsed
   var row;
   while (row = this.read()) {
    console.log('time %s and value %s', row.time, row.val);
  }})
 .on('error', function (err) {
  //handle err
  })
 .on('end', streamCassandra);
};

将您的流客户端打包成一个递归函数,该函数再次调用自身(' end',streamCassandra)。如果你不需要那种并发性,你也可以使用setInterval每隔x秒轮询一次该函数。其中一种方法应该有效

答案 1 :(得分:1)

你检查过NiFi吗?

https://nifi.apache.org/

在您的情况下,您可以将您的Spark Streaming结果写入Kafka,HDFS,甚至直接写入NiFi,但我个人更喜欢写入Kafka或其他一些消息队列。 从NiFi,您可以写信给Kafka,并向您的Node JS应用程序发送请求,如果这是您需要的。就我而言,我使用Meteor,所以只需从Kafka推送到MongoDB就会自动刷新UI。

我希望它有所帮助。