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服务端--> <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