View a markdown version of this page

Neptune 无服务器的心跳配置 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Neptune 无服务器的心跳配置

在将 Gremlin WebSocket 客户端与 Neptune Serverless 一起使用时,您需要适当配置客户端的 ping 间隔,以便在扩展事件期间保持稳定的连接。Gremlin 客户端使用 WebSocket 连接并定期发送 ping 来验证连接是否处于活动状态。客户端期望服务器在 ping 间隔时间范围内做出响应。如果服务器没有响应,则客户端会自动关闭连接。

对于 Neptune 预置的实例,我们建议将 ping 间隔设置为 5 秒。 对于 Neptune 无服务器集群,我们建议将 ping 间隔设置为至少 20 秒,以适应扩展操作期间的潜在延迟。此参数控制客户端在发送 ping 命令以验证连接是否仍处于活动状态之前,在两次写入服务器之间等待多长时间。

此参数的配置因客户端实现而异:

Java 客户端配置

对于 Java TinkerPop Gremlin 客户端,配置以下keepAliveInterval参数:

Cluster.Builder builder = Cluster.build() .addContactPoint(endpoint) .keepAliveInterval(20000); // Configure ping interval in milliseconds

有关 Java 驱动程序配置的更多详细信息,请参阅 Java TinkerPop 文档。

Go 客户端配置

对于 Gremlin Go 客户端,配置以下KeepAliveInterval参数:

rc, err := driver.NewDriverRemoteConnection(endpoint, func(settings *driver.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" settings.AuthInfo = auth settings.KeepAliveInterval = 20 * time.Second // Configure ping interval ... })

有关 Go 驱动程序配置的更多详细信息,请参阅 Go TinkerPop 文档。

JavaScript/Node.js 客户机配置

对于 JavaScript/Node.js Gremlin 客户端,配置以下参数:pingInterval

const gremlin = require('gremlin'); const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection; const connection = new DriverRemoteConnection(endpoint, { traversalSource: 'g', pingInterval: 20000 // Configure ping interval in milliseconds });

有关 JavaScript 驱动程序配置的更多详细信息,请参阅JavaScript TinkerPop 文档。

Python 客户端配置

对于 Python Gremlin 客户端,ping 间隔通常由传输层管理。有关配置选项,请参阅特定的传输实施文档:

from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection g = traversal().with_remote( DriverRemoteConnection('wss://your-neptune-endpoint:your-neptune-port/gremlin','g', transport_factory=lambda: AiohttpTransport(read_timeout=60, write_timeout=20, heartbeat=20, // Configure heartbeat call_from_event_loop=True, max_content_length=100*1024*1024, ssl_options=ssl.create_default_context(Purpose.CLIENT_AUTH))))

有关 Python 驱动程序配置的更多详细信息,请参阅 Python TinkerPop 文档。

此配置可确保您的客户端在 Neptune Serverless 扩展事件期间保持连接稳定性,防止不必要的连接关闭并提高应用程序可靠性。