다음과 같은 애플리케이션을 만족해야하는 기능 구현을 해야되는 상황

  • 애플리케이션이 1분 간격으로 작업을 실행
  • 애플리케이션 프로세스는 여러 노드에서 실행됨
  • 동시에 여러 스레드가 작업을 실행하면 데이터에 문제가 발생함 즉, 동시에 두개 이상 프로세스가 실행 되더라두 그중 하나의 프로세스, 하나의 스레드만 작업을 실행해야만하는것.

이러한 요구 충족하려면 분산 잠금이 필요.

레디스나 주키퍼같은 기술을 사용할 수도 있지만 구조를 단순히 유지하고 싶었음. 그래서 분산 잠금 수단으로 DB를 사용.

이 부록에서는 일정 시간 잠금을 소유하는 방식의 분산 잠금을 DB로 구현해본다.