neo4j调试日志中大量Inbound message queue has exceeded high watermark是什么原因?有哪些影响?如何解决?

项目中使用了neo4j,最近迁移了一个新环境,结果发现服务运行不稳定,有时候报错:在neo4j事务提交时,等待某个节点的锁超时(30秒),有时候驱动程序报错:客户端连接被终止。

因为之前对neo4j仅仅限于简单应用。所以对neo4j配置、日志等并不了解。
重新花时间了解了下neo4j的基本配置(主要是内存配置),尝试查看下neo4j的调试日志。

目前neo4j是放在docker容器运行的。配置方法如下:

services:

neo4j:

image: bitnami/neo4j:5.3.0

environment:

NEO4J_PASSWORD: 12345678

ports:

# 客户端页面访问端口

- "7474:7474"

# bolt协议访问端口

- "7687:7687"

volumes:

- "./neo4j_data:/bitnami/neo4j/data"

# 内存及其它配置(详见neo4j.conf文件内中文说明)

- "./conf:/bitnami/neo4j/conf"

# 日志

- "./logs:/opt/bitnami/neo4j/logs"

restart: always

在neo4j.conf配置中,主要设置了最大内存4G(因为neo4j中节点的数量为 61万个,感觉4G应该足够用了):

# 修改内存设置

server.memory.heap.initial_size=256m

server.memory.heap.max_size=4096m

目前查看neo4j的调试日志,发现有大量的 Inbound message queue has exceeded high watermark - Disabling message processing,那么这些错误会带来什么影响呢?会导致事务执行失败?还是仅仅是响应速度慢?应该如何解决呢?


补充:2023-12-27
今天取了neo4j源码,查看了下出问题的代码;另外,启用了neo4j服务端调试功能,挂上断点初步查看了下爆出警告日志的地方,对bolt协议的处理入口有了简单的第一印象,网上初步搜了下neo4j源码赏析、bolt协议解析等内容,可惜没有多少有价值的东西。neo4j的服务端代码还是挺优雅的,后面有时间做一下跟踪分析。

<!--neo4j服务端-->

<dependency>

<groupId>org.neo4j</groupId>

<artifactId>neo4j-community</artifactId>

<version>5.3.0</version>

</dependency>

在neo4j.conf文件中开放调试端口

# 开放调试端口

server.jvm.additional=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

以上是 neo4j调试日志中大量Inbound message queue has exceeded high watermark是什么原因?有哪些影响?如何解决? 的全部内容, 来源链接: utcz.com/p/945497.html

回到顶部