Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何仅在节点存储引擎上使用Cassandra?_Java_Database Design_Nosql_Cassandra_Hdfs - Fatal编程技术网

Java 如何仅在节点存储引擎上使用Cassandra?

Java 如何仅在节点存储引擎上使用Cassandra?,java,database-design,nosql,cassandra,hdfs,Java,Database Design,Nosql,Cassandra,Hdfs,我正在开发一个用于数据存储的应用程序。所有复制、路由和数据检索类型的业务都在我的应用程序中处理。到目前为止,数据存储在内存中。现在,我想使用Cassandra存储引擎将数据从内存刷新到硬盘。我不确定这是不是一个正确的方法 我的问题: 我可以只使用Cassandra数据存储引擎吗?我不想将Cassandra作为一个完整的系统使用(在这种情况下,我应该为每个节点运行一个独立的Cassandra,我的应用程序就像Cassandra的客户机那样运行。这种想法会在节点上增加很多内存,因为它会在我的应用程序

我正在开发一个用于数据存储的应用程序。所有复制、路由和数据检索类型的业务都在我的应用程序中处理。到目前为止,数据存储在内存中。现在,我想使用Cassandra存储引擎将数据从内存刷新到硬盘。我不确定这是不是一个正确的方法

我的问题: 我可以只使用Cassandra数据存储引擎吗?我不想将Cassandra作为一个完整的系统使用(在这种情况下,我应该为每个节点运行一个独立的Cassandra,我的应用程序就像Cassandra的
客户机那样运行。这种想法会在节点上增加很多内存,因为它会在我的应用程序和存储引擎之间设置不必要的级别)


我有自己的复制、环和路由代码。我只需要卡桑德拉的节点存储设备

Cassandra的开发人员并没有特意将Cassandra作为一个嵌入式库而不是一个独立的产品来使用。与ApacheDerby相比,ApacheDerby非常容易嵌入。但这是可能的;我已经这样做了,这不是一项艰巨的任务

您必须研究源代码以找到所需的位。我不知道您感兴趣的具体位,但要找到它们,您必须了解代码中使用这些位但您不直接感兴趣的部分


为了提供一个方便的API和一个配置接口,您可能必须用修改过的版本替换一些Cassandra类。如果没有良好的构建和版本控制系统,这是不切实际的。我使用Maven进行构建,发现它的Shade插件有助于创建一个包含大部分(但不是全部)Cassandra类的JAR,并选择性地替换一些类

卡桑德拉是一个“存储引擎”。什么意思?您的意思是希望在“嵌入式”模式下运行Cassandra,这样用户就不必启动和控制Cassandra进程并编写Cassandra配置文件了吗?是的。我想在我的应用程序中嵌入cassandra。我有自己的复制、环和路由机制。我希望cassandra只在每个节点的本地存储中存储我的数据。这就是我想要的。我查看了cassandra的源代码,发现了一个名为“db”的目录。你认为它包含存储数据所需的类吗?我的意思是我想将cassandra作为库导入并使用它的技能。在我的例子中,只有它的数据库功能。