jpa

    DataSource 라우팅이 안되는 이유. OSIV

    들어가며 DB 레플리케이션을 통한 성능 개선을 진행하였다. MySQL과 스프링부트 환경에서 레플리케이션을 적용하였는데 이는 추후 블로깅 예정이다. DB 레플리케이션을 위해서는 스프링 부트에서 여러 DataSource를 설정하고, 트랜잭션의 옵션에 따라 특정 DataSource로 분기처리를 해야한다. 이를 적용하려고 할 때 문제가 발생했다. 서비스 메소드의 readOnly = false 메소드가 읽기전용 db로만 쿼리가 날아간 것이다. 우리의 예상대로면 readOnly = false 일 경우 쓰기 db, readOnly = true 일 경우 읽기 db 로 날아가야한다. 하지만 문제가 발생했다. 문제 발견 우리의 요즘카페 서비스에서는 로그인한 사용자가 조회 하며 조회 기록 데이터를 수정하고, 좋아요 처리를 ..