【问题标题】:Neo4j Standalone vs Embedded server?Neo4j 独立与嵌入式服务器?
【发布时间】:2011-06-10 17:33:45
【问题描述】:

我想知道neo4j的这两种实现有什么区别。当然,这两种技术的名称是不言自明的,但主要区别是什么? 在决定在项目中使用哪种技术时应考虑哪些因素? 优点和缺点。

附:抱歉,如果这是一个重复的问题,但我搜索并找不到任何回答我的问题的问题。

【问题讨论】:

    标签: neo4j embedding


    【解决方案1】:

    因为独立服务器是在嵌入式服务器上构建的,所以一般的经验法则是嵌入式服务器功能更强大并且(显然)延迟更低。两者都可以在高可用性模式下运行,允许监控,甚至接受来自 neo4j-shell 的连接。但是,使用服务器,您可以获得更多开箱即用的功能,例如远程处理、基本可视化、监控界面等。

    不同之处在于您想象的实际差异。选择部署方法受两件事影响:

    1. 语言 - 嵌入式模式要求您使用与 JVM 兼容的语言来实现应用程序。服务器支持任何可以发送 HTTP 请求的语言/框架。
    2. 硬件 - 在应用程序和 Neo4j 之间共享物理资源可能要求很高。扩展可能会要求使用专用机器来拆分持久层。服务器显然有一个远程 API 来支持对您的应用程序进行分段。

    如果没有特定的使用场景,则很难提供指导。部署到现有的面向服务的架构中?应该是服务器。在复印机上运行?去嵌入。从头开始 Web 应用程序?你剩下的堆栈是什么?

    【讨论】:

    • 项目是一个网站,我想在其中使用 noe4j 数据库。我认为使用嵌入式数据库是正确的方法,因为它可以让我轻松部署,而不必担心 curl 和其他事情。
    • 使用 Neo4j HA,API REST 是唯一一种将我的应用程序(在单独的机器上)连接到 Neo4j 集群的方法吗?
    • 是的,与 Neo4j 的所有远程通信都是通过 REST API 执行的。