2 回答
![?](http://img1.sycdn.imooc.com/545863aa00014aa802200220-100-100.jpg)
TA贡献1830条经验 获得超9个赞
“等待可用主机时超时” - 这肯定是您的客户端和数据库之间的连接问题。关于调试与 Neptune 的连接有很多答案,请尝试一下。首先,您可以在客户端计算机上尝试以下操作吗?
telnet <db-endpoint> <db-port>
您很可能会看到它正在等待建立连接,这证实了这一假设。
通常,建立与服务器的连接相当快。您需要担心的唯一超时是查询超时,而 Neptune 有一个参数组条目。
https://docs.aws.amazon.com/neptune/latest/userguide/parameters.html
![?](http://img1.sycdn.imooc.com/5458477f0001cabd02200220-100-100.jpg)
TA贡献1824条经验 获得超5个赞
我遇到了同样的错误。Neptunes 不会将错误堆栈跟踪记录到日志中。当 cpu > 60% 用例时,我的 TimeoutException 即将到来。由于与 db 建立了许多连接,cpu 会变得如此之高。
Gremlin 基于 websockets,多个请求可以通过同一个通道复用和使用。添加maxInProcessPerConnection
并maxSimultaneosUsagePerConnection
确实帮助我将错误率降低到 0%。这些参数设置将在一个连接中多路复用的进程数。在我的例子中,大约有 50 名工作人员同时读/写。我观察到,对于我的用例,将值设置为 32 会导致 CPU 使用率最低。下面是我现在要解决的集群属性。
默认情况下,如果未提及,Cluster 会保留一个最多 8 个 websocket 连接的池。TimeoutException
当maxPoolSize
设置为100时,我得到了。
.addContactPoint(uri) .port(port) .serializer(Serializers.GRAPHBINARY_V1D0) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .maxContentLength(10000000) .maxWaitForConnection(10) .create()
添加回答
举报