문제
-
싱글턴 문제점과 해결책개발/java 2024. 9. 2. 11:55
자바의 경우 싱글턴 패턴으로 이루어져 있다 예를 들어 동일 서비스를 10번 호출을 하게 되면 10번을 새로운 서비스로 인지해서 비효율적이니 1번의 호출만 새로운 서비스로 인식하고 나머지 9번을 1번을 호출된 서비스를 받아 처리하는 구조이다. 이 경우 상태를 체크하는 부분에서 문제가 발생할 수 있다. 예를 들어 멀티스레드로 구성된 경우 주문을 접수를 하는 고객이 여러번 주문생성이 가능한 구조라면 여러가지 상태 체크를 무시하는 경우가 발생할 수 있다. 이를 방지하는 경우는 여러가지가 있으나 그중 DB를 통해 resource lock을 걸어 제어하는 방법이 있다. 방식 1. 서비스 시작 시 특정 키를 통해 db를 insert 한다 2.서비스 수행 도중 해당 키를 통해 유입된 경우 유입을 대기 한다 3.서비..