首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j -企业版功能

Neo4j -企业版功能
EN

Stack Overflow用户
提问于 2013-11-22 17:45:11
回答 2查看 496关注 0票数 0

我使用的是带有Scala-Neo4j包装器的Neo4j社区版,我刚刚下载了Neo4j的企业版。我看到了企业版中的一些附加功能,如高性能缓存、集群和3*生产实例。我如何利用这些特性?为了使用这些特性,我需要对我在使用社区版时编写的代码进行任何更改吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-22 18:35:43

这取决于您的部署模型。

如果在嵌入式模式下使用Neo4j,则通常使用GraphDatabaseFactory.newEmbeddedDatabase(path)初始化DB。当使用Neo4j企业嵌入式时,你必须将其替换为HighlyAvailableGraphDatabaseFactory.newHighlyAvailableDatabaseBuilder(path).setConfig(map).newGraphDatabase(),其中map包含您的部署的配置设置,特别是http://docs.neo4j.org/chunked/stable/ha-configuration.html中记录的ha参数。

如果您的应用程序通过REST (服务器部署)访问Neo4j,那么您不应该更改访问负载均衡器的URL。

请注意,Neo4j企业版具有双重许可: AGPL (Affero GPL)或商业许可,有关这方面的更多信息,请参阅http://www.neo4j.org/learn/licensing

票数 1
EN

Stack Overflow用户

发布于 2014-08-14 10:52:51

我知道这是一个相当古老的问题,但其他人可能会发现这很有用。可以将Scala Neo4j包装器与HA实例一起使用。

您可以扩展GraphDatabaseServiceProvider。要获得集群等企业特性,您需要在每个集群节点上运行应用程序的一个实例。

代码语言:javascript
复制
package graphdatabase

import scala.collection.JavaConversions._

import eu.fakod.neo4jscala.{
  Neo4jWrapper, DatabaseService,
  DatabaseServiceImpl, GraphDatabaseServiceProvider
}

import org.neo4j.cluster.ClusterSettings
import org.neo4j.kernel.ha.HaSettings
import org.neo4j.graphdb.factory.HighlyAvailableGraphDatabaseFactory

object HighAvailabilityGraphDatabase extends Neo4jWrapper with GraphDatabaseServiceProvider {

  def neo4jStoreDir = "/path/to/db"

  // The config params will vary for each cluster node.
  // You could use environment variables for example to configure.
  def configParams = Map(
    ClusterSettings.server_id.name -> sys.env.get("SERVER_ID").get, // e.g. 1
    HaSettings.ha_server.name -> sys.env.get("HA_SERVER").get, // e.g. server1:6001
    ClusterSettings.cluster_server.name -> sys.env.get("CLUSTER_SERVER").get, // e.g.server1:5001
    ClusterSettings.initial_hosts.name -> sys.env.get("INITIAL_HOSTS").get // e.g. server1:5001,server2:5001
  )

  val ds: DatabaseService = {
    val gdb = DatabaseServiceImpl(new HighlyAvailableGraphDatabaseFactory()
      .newHighlyAvailableDatabaseBuilder(neo4jStoreDir)
      .setConfig(mapAsJavaMap(configParams))
      .newGraphDatabase
    )
    sys.addShutdownHook({
      shutdown(gdb)
    })
    gdb
  }
}

您还应该能够在配置中配置高性能缓存,尽管我会检查the docs

然后,您可以通过从HighAvailabilityGraphDatabase导入,像在其他任何地方一样使用Neo4j Scala包装器。但您现在可以获得其他企业功能的好处,如实时备份。从Scala包装器访问底层Java数据库服务也很容易。

代码语言:javascript
复制
import graphdatabase.HighAvailabilityGraphDatabase._

object Foo {
  withTx { implicit db =>
    // use db.gds to access the underlying GraphDatabaseService object.
    // otherwise create nodes etc as per usual.
    val node = createNode
    node("foo") = "bar"
  }
}

注意:您还需要确保在您的Neo4j (或类似的)中包含Scala HA,因为它没有包含在build.sbt包装器中。

代码语言:javascript
复制
libraryDependencies ++= Seq(
  "org.neo4j" % "neo4j-ha" % "2.1.3" // Replace 2.1.3 with your version
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20141646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档