2014-07-24 160 views
2

我想知道neo4j服务器和嵌入模式的含义。即使我经历了Neo4j Server vs. Embedded。但我很清楚这些概念。我在neo4j服务器的windows 64bit机器上安装了neo4j 2.1.1。所以当neo4j嵌入式模式会出现时?Neo4j服务器与嵌入模式

另外,我们如何才能在嵌入式模式与服务器模式之间切换,反之亦然?

当我与MySQL的合作,Neo4j的迁移(使用批量导入),导入节点,关系到的Neo4j在messages.log文件,如下得到一个消息后:如何嵌入

Clean shutdown on BatchInserter(EmbeddedBatchInserter[C:\Users\Neo4j\t2.db]) 

在这里出现如果我已经安装了neo4j服务器?所以请澄清这些查询。

感谢您的应用程序内运行

+0

该文档是有点含糊不清这件事,但嵌入式仅仅意味着什么顾名思义:嵌入式服务器为您的应用程序,而不是单独的东西,你的应用程序连接到的一部分。 –

+0

Ya甚至开始知道neo4j嵌入式数据库是由我们的应用程序在指定的路径中使用neo4j库创建的。但要在neo4j服务器中查看嵌入式数据库,我怎么能看到它?我如何在嵌入式到服务器模式之间切换? – shree11

+0

我自己对Neo4j相当陌生,但我认为您可以从嵌入式实例中复制文件并使用副本运行服务器。 Neo4j中内置了集群,因此您可以运行带有嵌入式和服务器节点的集群。 –

回答

5

嵌入式数据库,这意味着他们在同一个JVM您的应用程序。一般来说,在嵌入式数据库中,您可以直接进行数据库访问或密码查询。这里有很多优点和缺点 - 其中一个缺点是您的JVM进程锁定了数据库;您不能在同一时间访问相同嵌入式数据库的不同JVM中使用大量不同的应用程序。亲是直接访问。

当您运行服务器时,通常意味着您使用的是也提供一组RESTful服务的Web管理组件。这是因为它在不同的JVM中。这意味着您可以通过其他编程语言,网络等更轻松地访问它。您可以在许多JVM中有很多应用程序都通过RESTful服务与服务器实例通信。通常访问速度并不快,但它更加灵活。当你以这种方式运行它时,直接访问Java应用程序内部的图形(使用Neo4J API)是不受限制的。

如果您想要在嵌入式数据库中运行网络管理员/图形用户界面和RESTful服务,可以这样做。 See these instructions for how.

这是一段代码片段:你需要的是WrappingNeoServerBootstrapper

AbstractGraphDatabase graphdb = getGraphDb(); 
WrappingNeoServerBootstrapper srv; 
srv = new WrappingNeoServerBootstrapper(graphdb); 
srv.start(); 
// The server is now running 
// until we stop it: 
srv.stop(); 
+0

@ Frobber感谢您提供有用的信息。上面你已经给出了代码片段来从嵌入式数据库中运行web amin/gui,但是我并没有使用任何java代码。所以我应该在哪里需要适合上面的代码片段。我使用批量导入器将数据从mysql导入到neo4j。导入后,我无法使用batch-import命令为新创建的数据库启动ne04j服务器。那么我需要做什么? – shree11

+0

我收到如下错误:'o.neo4j.kernel.EmbeddedGraphDatabase - 启动失败:组件[email protected]'已成功初始化,但未能启动。请参阅附加的原因例外:组件'org.neo4j.kernel.impl.nioneo.xa。NeoStoreXaDataSource @ 49643715'已成功初始化,但未能启动。请参阅附加的原因例外:'neostore.nodestore.db'有一个我们无法升级的商店版本号。预期'NodeStore v0.A.1',但文件版本'NodeStore v0.A.0'.'。我使用批量导入生成数据库。 – shree11

+0

@FrobberOfBits这里嵌入=内存中? –