분산락을 이용한 메시지 좋아요 기능 동시성 문제 해결 방안
이전 글에서 spring retry로 간단한 동시성을 해결했지만 완벽한 해결방법이 아니다.단일 서버가 아닌 다중 서버 환경에서는 동일한 데이터에 동시에 접근할 때 발생하는 동시성 문제는 낙관적 락과 spring retry로 해결하기에는 무리다.그래서 이번에는 분산락을 통한 동시성 해결을 확인해보자왜 분산락이 필요한가?낙관적 락 + 재시도(Spring retry)의 한계이전 글에서 낙관적 락과 Spring retry를 통해 DB 레벨에서 충돌 시 예외를 던지고 자동으로 재시도하는 방식을 시도했다.단일 서버에서는 일정 수준 동시성 충돌을 방어할 수 있지만 서버가 2대 이상으로 스케일 아웃되거나 트래픽이 폭주할 경우DB 예외가 계속 발생 -> 각 서버에서 재시도 반복 -> DB/애플리케이션 모두 과부하가 걸릴..
공부/Spring
2024. 5. 16. 19:15