नियो 4j - एंटरप्राइज़ संस्करण विशेषताएं

मैं स्काला-नियो 4 जे रैपर के साथ स्काला के साथ नियो 4j समुदाय संस्करण का उपयोग कर रहा था और मैंने अभी नियो 4j के एंटरप्राइज़ संस्करण को डाउनलोड किया है। मैंने एंटरप्राइज़ संस्करण में कुछ अतिरिक्त विशेषताओं जैसे हाई-प्रदर्शन कैश, क्लस्टरिंग और 3 * प्रोडक्शन इंस्टेंस देखा। मैं इन सुविधाओं का उपयोग कैसे करूं? क्या मुझे इन सुविधाओं का उपयोग करने के लिए समुदाय संस्करण का उपयोग करते समय मैंने जो कोड लिखा था, उसमें कोई बदलाव करने की ज़रूरत है?

0

2 उत्तर

यह आपके तैनाती मॉडल पर निर्भर करता है।

यदि आप एम्बेडेड मोड में नियो 4j का उपयोग करते हैं तो आप आम तौर पर GraphDatabaseFactory.newEmbeddedDatabase (पथ) का उपयोग करके डीबी प्रारंभ करते हैं। जब आप Neo4j एंटरप्राइज़ एम्बेडेड के लिए जा रहे हैं तो आपको इसे HighlyAvailableGraphDatabaseFactory.newHighlyAvailableDatabaseBuilder (path) .setConfig (map) .newGraphDatabase() जहां map में आपकी तैनाती के लिए कॉन्फ़िगरेशन सेटिंग्स शामिल हैं , http://docs.neo4j.org/chunked/ पर प्रलेखित हे पैरामीटर esp स्थिर/हेक्टेयर-configuration.html

तैनाती के मामले में जहां आपका एप्लिकेशन REST (सर्वर परिनियोजन) के माध्यम से नियो 4j तक पहुंचता है, आपको लोडबैंसर के यूआरएल तक पहुंचने वाले यूआरएल को नहीं बदलना चाहिए।

कृपया ध्यान दें कि नियो 4 जी उद्यम दोहरी लाइसेंस प्राप्त है: एजीपीएल (एफ़ेरो-जीपीएल) या वाणिज्यिक लाइसेंस, http://www देखें इस पर और अधिक के लिए .neo4j.org/सीखें/लाइसेंसिंग

1
जोड़ा
मैं एम्बेडेड मोड में Neo4j का उपयोग कर रहा हूँ। क्या मुझे अपने प्रश्न (उच्च प्रदर्शन कैश, क्लस्टरिंग और 3 * उत्पादन उदाहरण) में उल्लिखित सुविधाओं का कोई स्पष्टीकरण मिल सकता है।
जोड़ा लेखक yAsH, स्रोत

मुझे पता है कि यह काफी पुराना सवाल है लेकिन अन्य इसे उपयोगी पाते हैं। एचए उदाहरण के साथ स्कैला नियो 4 जे रैपर का उपयोग करना संभव है।

आप GraphDatabaseServiceProvider का विस्तार कर सकते हैं। क्लस्टरिंग जैसी एंटरप्राइज़ फीचर्स प्राप्त करने के लिए आपको प्रत्येक क्लस्टर नोड पर अपने एप्लिकेशन का एक उदाहरण चलाने की आवश्यकता होगी।

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
  }
}

आपको कॉन्फ़िगरेशन में उच्च प्रदर्शन कैशिंग को कॉन्फ़िगर करने में भी सक्षम होना चाहिए, हालांकि मैं दस्तावेज़

फिर आप Neo4j स्कैला रैपर का उपयोग कर सकते हैं क्योंकि आप कहीं भी HighAvailableGraphDatabase से आयात करके कहीं और करेंगे। लेकिन अब आप लाइव बैकअप जैसे अन्य एंटरप्राइज़ फीचर्स का लाभ प्राप्त कर सकते हैं। स्कैला रैपर से अंतर्निहित जावा डेटाबेस सेवा तक पहुंच बनाना भी आसान है।

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"
  }
}

Note: You'll also need to ensure that you include Neo4j HA in your build.sbt (or similar) since it isn't included in the Scala wrapper.

libraryDependencies ++= Seq(
  "org.neo4j" % "neo4j-ha" % "2.1.3"//Replace 2.1.3 with your version
)
0
जोड़ा