Configurazione Heartbeat per Neptune Serverless - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione Heartbeat per Neptune Serverless

Quando si utilizzano WebSocket client Gremlin con Neptune Serverless, è necessario configurare l'intervallo di ping del client in modo appropriato per mantenere connessioni stabili durante gli eventi di scalabilità. Il client Gremlin utilizza le WebSocket connessioni e invia ping periodici per verificare che la connessione sia attiva. Il client si aspetta una risposta dal server entro l'intervallo di tempo dell'intervallo di ping. Se il server non risponde, il client chiude automaticamente la connessione.

Per le istanze con provisioning di Neptune, consigliamo di impostare l'intervallo di ping su 5 secondi. Per i cluster Neptune Serverless, consigliamo di impostare l'intervallo di ping su almeno 20 secondi per far fronte a potenziali ritardi durante le operazioni di scalabilità. Questo parametro controlla il tempo di attesa del client tra una scrittura e l'altra sul server prima di inviare un ping per verificare che la connessione sia ancora attiva.

La configurazione di questo parametro varia a seconda dell'implementazione del client:

Configurazione del client Java

Per il client Java TinkerPop Gremlin, configura il keepAliveInterval parametro:

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

Per ulteriori dettagli sulla configurazione del driver Java, consultate la documentazione Java TinkerPop .

Vai alla configurazione del client

Per il client Gremlin Go, configura il KeepAliveInterval parametro:

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

Per maggiori dettagli sulla configurazione del driver Go, consulta la documentazione di Go TinkerPop .

JavaScriptConfigurazione del client /Node.js

Per il client JavaScript /Node.js Gremlin, configura il pingInterval parametro:

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

Per maggiori dettagli sulla configurazione del JavaScript driver, consulta la JavaScript TinkerPop documentazione.

Configurazione del client Python

Per il client Python Gremlin, l'intervallo di ping viene in genere gestito a livello di trasporto. Consulta la documentazione specifica sull'implementazione del trasporto per le opzioni di configurazione:

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

Per maggiori dettagli sulla configurazione del driver Python, consulta la documentazione di Python. TinkerPop

Questa configurazione garantisce che il client mantenga la stabilità della connessione durante gli eventi di scalabilità di Neptune Serverless, prevenendo chiusure di connessione non necessarie e migliorando l'affidabilità delle applicazioni.