Neptune Serverless에 대한 하트비트 구성 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Neptune Serverless에 대한 하트비트 구성

Neptune Serverless에서 Gremlin WebSocket 클라이언트를 사용하는 경우 조정 이벤트 중에 안정적인 연결을 유지하도록 클라이언트의 ping 간격을 적절하게 구성해야 합니다. Gremlin 클라이언트는 WebSocket 연결을 사용하고 주기적 ping을 전송하여 연결이 활성 상태인지 확인합니다. 클라이언트는 ping 간격 기간 내에 서버로부터 응답을 기대합니다. 서버가 응답하지 않으면 클라이언트는 연결을 자동으로 닫습니다.

Neptune 프로비저닝된 인스턴스의 경우 ping 간격을 5초로 설정하는 것이 좋습니다. Neptune Serverless 클러스터의 경우 조정 작업 중에 발생할 수 있는 지연을 수용할 수 있도록 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 조정 이벤트 중에 클라이언트가 연결 안정성을 유지하여 불필요한 연결 종료를 방지하고 애플리케이션 신뢰성을 개선할 수 있습니다.