【问题标题】:Neo4j 500 Internal Server Error on concurrent writesNeo4j 500 并发写入的内部服务器错误
【发布时间】:2016-03-10 12:44:40
【问题描述】:

我在对 Neo4j 执行并发写入时偶尔会遇到 500 内部服务器错误。查询示例如下。

MATCH (u1:User {id:{id1}})
MATCH (u2:User {id:{id2}})
MERGE (u1)-[:FOLLOWS]->(u2)

如果是非常受欢迎的用户,您可能会遇到为u2 节点创建大量并发关系。

目前我正在明确处理DeadlockDetectedException 并有一个重试逻辑。但有时我会从服务器收到 500,响应正文如下。

 <html>
     <head><title>500 Internal Server Error</title></head>
     <body bgcolor="white">
         <center><h1>500 Internal Server Error</h1></center>
         <hr><center>nginx</center>
      </body>
 </html>

这让我不知道服务器上发生了什么。如果我处理它并执行重试,一切都会按预期工作。但这看起来很狡猾,因为我基本上猜测在这种特殊情况下发生了死锁,这可能是错误的并且与实际的服务器错误无关。

【问题讨论】:

  • 奇怪的是你从 nginx 得到了一个 html 响应。它是来自 neo4j 的真正 http 响应吗?
  • @christophe-willemsen 我正在使用 .net Neo4Client 作为驱动程序。我的理解(来自客户端来源)这个 html 作为来自 neo4j 的 http 响应原因短语返回。

标签: neo4j graph-databases neo4jclient nosql


【解决方案1】:

这个问题与我们的 ngnix 盒子配置有关,它在某些情况下给出了通用 500,而不是传播 DeadlockDetectedException

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2019-01-17
    • 2011-10-17
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多