Tag: neo4j bolt

小图的Neo4J在Ubuntu 16.04上使用了大量的内存

我已经在具有8GB和4核的Ubuntu 16.04虚拟机(Hyper-V)中安装了Neo4J v3.3.0(社区版)。 我有一个非常小的图(30节点),它只是用于阅读(每3秒约1次),它很less被写入。 我们想要扩展更多的图表,但是每三天(有时候会less一些)我们的服务器崩溃,因为Java占用了2GB以上的空间,而且顶部显示了300%的CPU使用率。 对我来说这是没有意义的,请问我可以让我知道如何configurationJava或Neo4J,以防止这种情况? 谢谢 我在/etc/neo4j/neo4j.conf文件中有以下configuration: dbms.query_cache_size=5000 dbms.threads.worker_count=4 dbms.memory.heap.initial_size=2g dbms.memory.heap.max_size=2g dbms.memory.pagecache.size=2g 发生这种情况时,日志文件显示以下错误: ERROR [onbvrcRunnableBoltWorker] Worker for session 'ecfe4a7f-1714-4ba3-9e98-a692bf153b45' crashed. Java heap space java.lang.OutOfMemoryError: Java heap space 也有这些可疑的消息(有很多): WARN [onkicMonitorGc] GC Monitor: Application threads blocked for 4680ms. ERROR [onbvtBoltMessagingProtocolV1Handler] Failed to write response to driver Unable to write to the closed output channel org.neo4j.bolt.v1.packstream.PackOutputClosedException: […]

以KOA-NEO4J或BOLT的forms传递一组属性和节点作为POST语句

我正在构build一个连接到NEO4J实例的REST API。 我使用koa-neo4j库作为基础( https://github.com/assister-ai/koa-neo4j-starter-kit )。 我是所有这些技术的初学者,但由于这个论坛的一些帮助,我有基本的function工作。 例如,下面的代码允许我创build一个标签为“metric”的新节点,并设置名称和dateAdded属性。 url: /metric?metricName=Test&dateAdded=2/21/2017 index.js app.defineAPI({ method: 'POST', route: '/api/v1/imm/metric', cypherQueryFile: './src/api/v1/imm/metric/createMetric.cyp' }); createMetric.cyp” CREATE (n:metric { name: $metricName, dateAdded: $dateAdded }) return ID(n) as id 但是,我正在努力想知道如何处理更复杂的例子。 如果事先不知道在创build新节点时要添加多less属性,或者想要在单个后置语句中创build多个节点,我该如何处理情况。 理想情况下,我希望能够传递类似JSON的东西作为POST的一部分,它将包含我想要创build的所有节点,标签和属性。 是这样的可能吗? 我尝试使用下面的Cypher查询并在POST正文中传递JSONstring,但它不起作用。 UNWIND $props AS properties CREATE (n:metric) SET n = properties RETURN n 我可以更好地切换到Neo4j Rest API,而不是使用BOLT协议和KOA-NEO4J框架。 从我的研究中,我认为最好使用BOLT,但是我希望Rest API作为我的前后端之间的中间层,所以如果长远来说更容易,我愿意改变。 谢谢您的帮助!