Apache Cassandra中临时数据的概念

问题描述 投票:0回答:1

我对临时数据(将数据写入数据库一次,然后从数据库读取一次然后删除)有关Cassandra的用法有疑问。

我们正在使用Cassandra,以在不同机器/不同容器上运行的进程之间交换数据。 Process1正在将一些数据写入Cassandra,Process2正在读取此数据。之后,可以删除数据。当我们了解到Cassandra由于逻辑删除和性能问题而不太喜欢在一个表中写入和删除数据时,我们正在为此创建临时表。

Process1:创建表,将数据写入表。Process2:从表中删除表中的数据。

但是要进行大量操作(每小时创建和删除500-1000个表),我们在节点(我们有6个节点的集群)之间的模式同步方面面临问题。Cassandra群集非常慢,收到很多超时警告,节点上有关不同架构的错误,群集节点上的CPU负载增长到100%,然后群集已死:-)。

Cassandra是否适合此用例的数据库?

这是我们如何配置集群的问题吗?

为此创建临时密钥空间会是更好的解决方案吗?

任何人都有使用Cassandra处理此类用例的经验吗?

cassandra
1个回答
0
投票

您在这里不需要任何数据库。您的用例是使您的应用程序能够相互握手以异步共享数据。有两种可能的解决方案:

1]对于基于批处理的读写,请考虑使用HDFS之类的东西进行中间存储。进程1将数据文件写入HDFS目录,而进程2从HDFS读取数据文件。

2)对于基于消息的系统,请考虑使用类似Kafka的东西。流程1处理数据流并写入Kafka主题,流程2使用者从Kafka主题中读取数据。 Kafka do提供Ack / Nack功能。

在Cassandra中连续创建和删除表的数量不是一个好习惯,从不建议这样做。

© www.soinside.com 2019 - 2024. All rights reserved.