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



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

我的问题:我可以只使用 Cassandra 数据存储引擎吗?我不想将 Cassandra 作为一个整体系统(在这种情况下,我应该为每个节点运行一个独立的 Cassandra,并且我的应用程序就像它是 Cassandra client一样。这个想法会在节点上放很多东西,因为它在我的应用程序和存储引擎之间放置了不必要的级别)。

我有自己的复制、环和路由代码。我只需要Cassandra的节点存储设施。

Cassandra开发人员并没有特意将Cassandra用作嵌入式库而不是独立产品。与Apache Derby形成鲜明对比,后者非常容易嵌入。但这是可能的;我已经这样做了,这不是一项艰巨的任务。

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

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

最新更新