1
  1. 在我的应用程序中直接使用gremlin javaapi
  2. 部署一个gremlin-server,使用gremlin-driverapi,连接到gremlin-server

哪一个更好?或者有什么优点和缺点?

4

1 回答 1

3

截至今天,答案在某种程度上取决于您的环境。如果您打算使用非 jvm 语言(python、C#、js 等),那么您可能应该使用 Gremlin Server,因为这是构建应用程序的唯一方法。如果您希望处于切换到其他图形数据库并远离您当前选择的数据库的最佳位置,那么使用 Gremlin Server 可能会更好,因为并非所有图形数据库都可以通过直接 Java API 获得(至少有二,嵌入 Gremlin Server 并且只允许通过驱动程序连接)。

因此,如果这两个问题的答案是响亮的“否”,那么我认为我无法说服您将 Gremlin Server 包含在您的应用程序中,特别是如果您没有非常复杂的项目需要担心的话。它为您的架构添加了另一个您可能希望避免的层。

如果您确实选择嵌入,请务必使用 Traversal API 而不是 Structure API。回想一下,Structure API 是供图提供者为其图系统实现 TinkerPop 接口的。换句话说,对于这段代码:

graph = TinkerGraph.open()
g = graph.traversal()

更喜欢使用由 提供的 API 而g不是提供的graph用于查询和变异图形的 API。

然而,我确实相信 TinkerPop 的未来确实对“Gremlin Server”有坚实的依赖(未来的化身可能看起来不同,但将是某种“服务器组件”),因为这对用户来说将不再是一个问题。 . 很高兴看到这个决策点被删除和简化。

于 2017-05-10T10:48:36.870 回答