View a markdown version of this page

Configuration du rythme cardiaque pour Neptune Serverless - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration du rythme cardiaque pour Neptune Serverless

Lorsque vous utilisez des WebSocket clients Gremlin avec Neptune Serverless, vous devez configurer l'intervalle ping du client de manière appropriée pour maintenir des connexions stables pendant les événements de dimensionnement. Le client Gremlin utilise des WebSocket connexions et envoie des pings périodiques pour vérifier que la connexion est active. Le client attend une réponse du serveur dans l'intervalle de ping. Si le serveur ne répond pas, le client ferme automatiquement la connexion.

Pour les instances provisionnées par Neptune, nous vous recommandons de définir l'intervalle ping sur 5 secondes. Pour les clusters Neptune Serverless, nous recommandons de régler l'intervalle ping à au moins 20 secondes pour tenir compte des retards potentiels lors des opérations de dimensionnement. Ce paramètre contrôle la durée pendant laquelle le client attend entre les écritures sur le serveur avant d'envoyer un ping pour vérifier que la connexion est toujours active.

La configuration de ce paramètre varie en fonction de l'implémentation du client :

Configuration du client Java

Pour le client Java TinkerPop Gremlin, configurez le keepAliveInterval paramètre :

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

Pour plus de détails sur la configuration du pilote Java, consultez la TinkerPop documentation Java.

Configuration du client Go

Pour le client Gremlin Go, configurez le KeepAliveInterval paramètre :

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

Pour plus de détails sur la configuration du pilote Go, consultez la TinkerPop documentation Go.

JavaScript/Node.js Configuration du client

Pour le client JavaScript/Node.js Gremlin, configurez le pingInterval paramètre :

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

Pour plus de détails sur la configuration du JavaScript pilote, consultez la JavaScript TinkerPop documentation.

Configuration du client Python

Pour le client Python Gremlin, l'intervalle ping est généralement géré au niveau de la couche transport. Consultez la documentation relative à la mise en œuvre du transport pour connaître les options de configuration :

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))))

Pour plus de détails sur la configuration du pilote Python, consultez la TinkerPop documentation Python.

Cette configuration garantit que votre client maintient la stabilité de la connexion pendant les événements de mise à l'échelle Neptune Serverless, évitant ainsi les fermetures de connexion inutiles et améliorant la fiabilité des applications.