gremlin驱动程序中的idleConnectionTimeout

问题描述 投票:0回答:1

我有一个在我的localhost(运行gremlin驱动程序)上运行的应用程序,在远程主机上运行的gremlin服务器,以及介于两者之间的负载均衡器。

我已经设置了Gremlin驱动程序的keepAliveInterval来保持我的localhost和负载均衡器之间的连接打开,但不知怎的,连接仍然被丢弃。 (负载均衡器中的超时间隔大于我在Gremlin驱动程序中配置的keepAliveInterval)。

我检查了日志并发现在连接断开后,Gremlin驱动程序仍在向负载均衡器发送保持活动消息,但它没有得到任何响应,也无法检测到它。

我想知道是否有任何方法可以找出保持活动响应未被接收或者是否有一些配置我可以像Gremlin服务器中的IdleConnectionTimeout那样让gremlin驱动程序意识到保持活动请求没有得到任何响应?

gremlin tinkerpop tinkerpop3 gremlin-server
1个回答
0
投票

驱动程序的保持活动过程并不十分强大,因为它对于服务器端保持活动而言有点冗余。驱动程序吞下与发送它自己的保持活动消息相关的异常,并且只记录WARN消息,因此您必须在日志中找到消息以确定是否存在故障。

我不确定是什么让您的环境进入负载均衡器失去连接的状态。服务器和驱动程序一起工作以维持连接。当驱动程序空闲时,它将在超过keepAliveInterval后发送保持活动状态,这将重置驱动程序和服务器的空闲状态。在服务器上,监视读写空闲状​​态(分别由idleConnectionTimeoutkeepAliveInterval),并向客户端发送保持活动状态。从“ping”(服务器或客户端)的任何一端,应返回“pong”。我想知道如果“ping”不是来自客户端,是否有负载均衡器的状态会终止连接?

© www.soinside.com 2019 - 2024. All rights reserved.