【发布时间】:2017-05-10 07:48:40
【问题描述】:
- 在我的应用程序中直接使用
gremlinjavaapi - 部署一个
gremlin-server,使用gremlin-driverapi,连接到gremlin-server
哪个更好?或者有什么优缺点?
【问题讨论】:
gremlinjava apigremlin-server,使用gremlin-driver api,连接到gremlin-server
哪个更好?或者有什么优缺点?
【问题讨论】:
截至今天,答案在某种程度上取决于您的环境。如果您打算使用非 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()
比起graph 提供的API,更喜欢使用g 提供的API 来查询和改变图形。
但我确实相信 TinkerPop 的未来确实对“Gremlin Server”(未来的化身可能看起来不同,但将是某种“服务器组件”)有一个坚实的依赖,因为这将不是一个问题要包括的用户。很高兴看到这个决策点被删除和简化。
【讨论】: