메모

 

어플리케이션을 개발하다보면 분산락 처리를 신경써야하는 과제들이 간혹 있는데 저는 보통 2가지를 사용합니다.

 

  1. mysql의 named lock 사용
    1. 보통 어플리케이션이 RDB는 사용중인 경우가 많음
    2. 트래픽이 아주 많아서 성능이 중요하지 않음
    3. 개인적으로 티어가 복잡해지지 않아서 선호
    4. 참고
      1. mysql lockking 링크 
  2. redis이용
    1. redis 가 추가로 필요
      1. 개인적으로는 atomic을 보장하는 setnxsetex 를 활용하여 심플하게 개발하기도 함
        1. 스핀락 형태라 주의할점이 있음(ex. ttl 없고, redis 부하 증가 등). 간단히 예상되는 트래픽에 많이 씀
    2. 참고
      1. 참고 글  링크
      2. redis redlock best practices 링크
  3. 기타
    1. 아주 예전에는 zookeeper를 사용하기도 했는데 번거로움

+ Recent posts