GS2-Lock API 레퍼런스

분산 배타 제어 기능

배타 처리를 실현하기 위한 서비스입니다.

GS2-Lock 의 잠금은 “네임스페이스”, “사용자ID”, “프로퍼티 ID” 의 조합으로 식별되는 “뮤텍스” 라는 리소스에 대해 획득합니다.

프로퍼티 ID 에는 배타 제어를 하고 싶은 리소스를 고유하게 식별하는 임의의 문자열을 지정합니다. 예를 들어 “가챠 추첨 처리”, “아이템 소지 수 갱신”, “외부 연동 알림 전송” 등, 이중 실행을 피하고 싶은 처리마다 서로 다른 프로퍼티 ID 를 할당하는 운용을 생각할 수 있습니다.

잠금을 획득할 때는 트랜잭션 ID 를 지정합니다. 동일한 트랜잭션 ID 로 같은 뮤텍스에 대해 재귀적으로 잠금을 획득한 경우, 참조 카운트가 증가하는 재진입 락(reentrant lock)으로 동작합니다. 해제할 때는 동일한 횟수만큼 Unlock 을 실행함으로써 잠금이 완전히 해제됩니다.

잠금에는 TTL(Time To Live)을 설정할 수 있으며, TTL이 경과하면 잠금은 자동으로 해제됩니다.

GS2-Lock 는 GS2의 마이크로서비스로 제공되기 때문에, 멀티 타이틀 간이나 여러 백엔드 서버, 여러 리전 간에 공통된 배타 제어를 실현할 수 있습니다.

GS2-Script 에서 호출함으로써, 서버 사이드 스크립트 내부에서 다른 스크립트 실행이나 외부 처리와의 배타 제어를 수행하는 것도 가능합니다.


GS2-Lock SDK for Game Engine API 레퍼런스

게임 엔진용 GS2-Lock SDK의 모델 사양과 API 레퍼런스

GS2-Lock SDK API 레퍼런스

각종 프로그래밍 언어용 GS2-Lock SDK의 모델 사양과 API 레퍼런스

GS2-Lock Deploy/CDK 레퍼런스

GS2-Deploy의 스택을 생성할 때 사용하는 템플릿 포맷과, CDK를 이용한 각종 언어의 템플릿 출력 구현 예제