将 Rexster 和 Titan Graph DB 用于可扩展的应用程序

Using Rexster and Titan Graph DB for scalable applications

我有一个 python 应用程序与 Cassandra 支持的 Titan 图形数据库通信。

Python 应用程序--------> Rexster Server + Titan Graph DB + Cassandra.

"Rexster Server + Titan Graph DB + Cassandra" 在单个 JVM 中。

我的 python 应用程序在多个虚拟机 machines.i 上运行。e 每个虚拟机都有我的应用程序的相同副本。这个想法是使应用程序可扩展。现在很明显,对于初始实现,我使用的是 "Rexster Server + Titan Graph DB + Cassandra" 的单个实例。这意味着后端数据库是单个节点。我在不同虚拟机上的应用程序 运行 与同一个后端通信。

我的问题如下

1) 我也想使后端数据库具有可扩展性。我怎样才能做到这一点?

2) 是否需要使用相同的"Rexster + Titan Graph DB"并配置多个cassandra节点?

3) Titan Graph DB 是这个用例的最佳选择吗?或者我可以用 Neo4j 代替 Titan Graph DB,用 Neo4jserver 代替 Rexster。 why/whynot?

Titan 是一个高度可扩展的图形数据库,正如他们的示例中所展示的那样。要回答您的问题,我认为有必要说明您的项目有多大。如果您打算部署 hadoop 集群,请确保 rexster 配置为连接到后端的 Zookeeper 地址(如果由它管理)而不是节点地址列表。

1. 我也想使后端数据库具有可扩展性。我该怎么做?
如果您打算扩展到一台机器的范围之外,您可以参考此页面以获取更多信息:Titan-Cassandra Configuration。 至于如何使后端数据库具有可扩展性,Cassandra 和 HBase 都是非常可扩展的数据库,我建议您阅读更多有关 Hadoop 生态系统的信息,以了解 Titan DB 如何适应这一点。您可以有许多 HBase/Cassandra 个 rexster 可以与之通信的节点

2. 是否需要使用相同的"Rexster + Titan Graph DB"并配置多个cassandra节点?
您可以在集群中的不同机器上启动多个 rexster 服务器,每个都连接到相同的后端。但是来自 rexster 的每个图都是相互独立的,因此您必须手动对图操作进行分区。在这种情况下,它只适合大量用户而不是 deep-traversals/queries

3. Titan Graph DB 是这个用例的最佳选择吗?或者我可以用 Neo4j 代替 Titan Graph DB,用 Neo4jserver 代替 Rexster。 why/whynot? 因为看起来你要部署一个集群,我认为 Titan 是更好的选择,除非你愿意支付 Neo4j 的企业版来支持集群。 Neo4j editions Another point to consider : Titan vs OrientDB