카테고리 없음

[트러블슈팅] S3 URL DB에 저장 안됨 | URL.openStream() 권한 문제 | RabbitMQ rabbitTemplate.convertAndSend 안됨

kimslab01 2024. 11. 13. 14:20

 

 

 

1. 문제 정의

클라이언트 요청에 따라 이미지는 S3에 업로드되었으나,

데이터베이스에 URL이 저장되지 않는 문제가 발생.

초기 구현에서는 S3 URL을 직접 URL.openStream()으로 가져왔으나, 접근 권한 문제로 인해 이미지 데이터 접근이 실패.

 

 

 

2. 사실 수집

이렇게 포스트맨에서는 잘 저장이 되는데 DB에는 저장이 안되는 문제 발생

 

RabbitMQ에서 제대로 큐가 저장되거나 소비된 흔적이 없음.

 

DB에도 저장에 전혀 안되는 모습.

 

 

3. 원인 추론

1. RabbitMQ 메시지 전달 실패 가능성: rabbitTemplate.convertAndSend 호출 X 혹은 큐에 메시지 생성 X

2. 큐 소비 문제: ImageUploadConsumerService에서 메시지를 제대로 처리하지 못하거나 예외 발생 가능성 있음

3. RabbitMQ 연결이 안 되었을 가능성

 

 

 

4. 조치 및 방안 검토

1 -> 대시보드에서 큐의 생성 및 메시지 전달 상태를 검토해본 결과, 제대로 전달되지 않음. rabbitTemplate.convertAndSend가 제대로 보내지지 않는다는 것을 알 수 있었음

2 -> 1번에서 안되니까 ImageUploadConsumerService 여기서도 제대로 메시지가 제대로 처리되지 못함

3 -> build.gradle과 application.properties의 RabbitMQ 설정에는 문제가 없었음

 

 

 

5. 결과 관찰

포스트맨으로 실행했을 때 잘 실행되고

 

DB에도 잘 저장되는 모습

 

RabbitMQ에서도 제대로 작동하는 모습이다.