강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

김태우님의 프로필 이미지
김태우

작성한 질문수

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

8.Consumer간 작업분배-WorkQueue part 1

안녕하세요 "섹션2 8. Consumer간 작업 분배" 에서 질문 있습니다.

해결된 질문

작성

·

37

0

안녕하세요. 강의 잘 듣고 있습니다.
섹션2. 8번 강의 11분 13초 쯤에 하시는 말씀에 의문이 들어 질문글 남깁니다.

 

이 부분 설명하실때 ' 컨슈밍을 할때 파라미터로 받은 초를 슬립을 준 뒤에 소진을 하겠다' 라고 하셨는데, 메시지를 받은 순간 이미 소진이 시작 된 것이고 각각 2초 4초 5초뒤에 소진이 끝나는 것 아닌가요? 조금 헷갈려서 질문 드립니다.

좋은 강의 감사드립니다.

답변 2

0

코드빌런님의 프로필 이미지
코드빌런
지식공유자

안녕하세요. 수강자님

컨슈머가 붙은 상태에서 정상적으로 메시지 큐에서 컨슈머에 전달 되면 정확하게는 처리중인 상태입니다.

내부에서 따로 설정한 로직 (여기서는 슬립 후 처리) 이후 소진이 완료되고 ack 가 호출되고 이때가 소진이 완료된 시점이 됩니다.

 

로그가 빨리 올라와서 구분이 어려울 수 있으니 초 단위로 대기를 준 부분이 아직 처리가 안된 상태이고, 이 후에 메시지가 출력된 이후에 ack 가 전달되면 소비가 완료된 상태입니다.

해당 강의는 메시지의 전달과 처리, 처리 완료 후 프로세스를 설명한 것이므로 초 단위 처리하는 부분이 실제 비즈니스 영역의 로직을 대체해서 소진 완료 이전에 로직을 실행하고 실행 후 act 가 날라가고 처리완료(소진완료) 된다고 이해하시면 됩니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 김태우님.

질문 주신 섹션2의 컨슈머 작업 분배 부분에 대해 설명드리겠습니다. RabbitMQ를 활용할 때 메시지 처리의 흐름은 다음과 같습니다:

  1. 메시지 소비 시작: 메시지가 큐에서 컨슈머로 전달될 때, 이는 즉시 소비 과정이 시작된 것으로 간주됩니다. 이는 메시지를 처리하기 위한 준비 단계로 볼 수 있습니다.

  2. 슬립 후 소진 완료: 강의에서 특정 초만큼 슬립(sleep) 후 소진을 완료하겠다고 설명한 부분은, 소비가 즉시 시작되지만 실제 처리가 끝나는 시점은 슬립 시간이 끝난 뒤로 이해하시면 됩니다. 즉, 메시지는 즉시 소비 시작 상태로 보고, 지정된 슬립 시간 이후에 최종적으로 처리가 완료된다고 보는 것입니다.

이번 설명을 통해 컨슈머의 데이터 처리 이해가 조금 더 명확해지셨길 바랍니다. 메시지 소비의 시작과 완료 시점을 구분하는 데에 중점을 두시면 됩니다.

유사한 메시지 소비 패턴에 대해 추가적인 설명이나 예제가 필요하시다면 아래 링크를 참고하시면 많은 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김태우님의 프로필 이미지
김태우

작성한 질문수

질문하기