작성
·
208
답변 1
0
안녕하세요 ddoddo님!
아래는 제가 실무에서 시도했다가 필요없어져서 폐기한 방식이긴 합니다.
- 1번의 요청에 최대 1,000개의 주문에 대해 주소 검증이 필요합니다.
- 주소 검증은 외부의 API에서 해야 하는데 서버의 물리적인 거리가 멀어 왕복에 딜레이가 발생하는 상황입니다. (1회 요청에 200ms 딜레이)
- 왕복을 최소화하기 위해 주문을 100개 단위 그룹으로 만듭니다.
- 그리고 주소 검증은 순서가 중요하지 않은 프로세스 이므로 이를 멀티쓰레드로 전송하여 전체 검증 시간을 단축합니다.
실무 코드는 JPA를 사용하고 있지 않아 영속성 컨텍스트와 무관하긴 하나,
JPA를 사용하고 있었다면 각 트랜잭션 마다 영속성 컨텍스트도 생성되었을 것입니다.
감사합니다.
답변 감사합니다. 추가로 궁금한 점이 있습니다.
한 요청이 Query1, 2, 3, 4, 5 총 5개의 쿼리를 수행해야하는데
Query1,2,3 이 논리적작업단위로 서비스계층에서 @Transactional가 적용된 메소드A 로 묶이고
Query4,5이 또 @Transactional로 묶여 있는 메소드B로 묶인 상황에서
Controller에서 Service의 메소드 A, B를 연이어서 호출하는 경우를 생각하고 처음 질문을 드렸습니다.
위 상황과 달리 답변내용의 상황은 어떨 때 벌어질 수 있는 것인지 궁금합니다.