【发布时间】:2015-03-01 11:31:16
【问题描述】:
我们目前使用 Hazelcast (http://hazelcast.org/) 作为分布式内存数据网格。这对我们来说效果不错,但是在我们的用例中,仅在内存中使用已经用尽了它的路径,我们正在考虑将我们的应用程序移植到 NoSQL 持久存储。经过通常的比较和评估后,我们几乎可以选择 Cassandra,最终选择 Spark 进行分析。
尽管如此,我们的架构需求存在差距,我们仍未掌握如何在 Cassandra 中解决(使用或不使用 Spark):Hazelcast 允许我们在其中创建一个连续查询,只要添加/删除一行/从子句的结果集中修改,Hazelcast 用相应的通知回调。我们使用它通过 AJAX 流使用新的/更改的行不断更新客户端。
这可能是我们正在做的一个概念上的不匹配,所以 - 如何在 Cassandra 中最好地解决这个用例(无论有没有 Spark 的帮助)? API 中是否有允许对键/子句更改进行连续查询的内容(尚未找到)?是否有其他方法可以获取密钥/子句更新流?某种事件?
我知道我们最终可以定期轮询 Cassandra,但在我们的用例中,客户可能对大量表子句通知感兴趣(想想“加利福尼亚海岸线上船舶位置的所有变化”),并且迭代出商店会破坏流媒体的可扩展性。
因此,神奇的问题是:我们缺少什么? Cassandra 是不是适合这项工作的工具?我们是否不知道 apache 领域内/外的 API 或外部库的特定部分允许这样做?
非常感谢您的帮助!
雨果
【问题讨论】:
-
你检查过 Cassandra 触发器 (datastax.com/dev/blog/…) 吗?
-
嗨。谢谢。是的,我有 - 问题是触发器位于 Cassandra 的写入路径中,并且在那里放置通知/进一步写入可能会严重阻碍 Cassandra 众所周知的写入性能 - 我试图避免这些 :)
标签: events cassandra apache-spark cassandra-2.0