흑우마스터의 마법의 공간

Consumer에 BasicConsume, BasicGet 차이 본문

프로그래밍/RabbitMQ

Consumer에 BasicConsume, BasicGet 차이

흑우마스터 2023. 4. 17. 11:54

BasicConsume

서버와 연결이 유지 되는 동안 메시지를 지속적으로 수신하도록 구독하며 이 메서드를 사용하면 더 이상 메시지를 가져오기 위해 수동으로 호출 할 필요가 없음

 

메시지가 큐에 도착하면 자동으로 Consumer에게 전달되고 이렇게 전달 된 메시지는 Received 이벤트 핸들러에서 처리가 가능함

 

장점

- 큐에 메시지가 도착하는 동안 즉시 전달되므로 지연 시간이 최소화 됨

- 메시지를 수도으로 가져오기 위한 코드를 작성할 필요가 없음

 

단점

- 서버와 연결이 종료되면 메시지 전달이 중단 됨

- 비정상적인 연결 중단에 대한 처리 필요

 

BasicGet

메시지를 수동으로 가져오는 방법으로 이 메서드를 호출할 때마다 큐에서 메시지를 하나씩 가져옴. 메시지가 없으면 null을 반환하며 메시지를 가져온 후 메시지를 처리하고 수동으로 확인해야 함

 

장점

- 메시지를 가져오는 행위를 제어할 수 있어 지정된 요구사항에 따라 코드 작성

 

단점

- 메시지를 가져오려면 코드를 주기적으로 실행해야 함

- 추가 작업이 필요하며 지연시간이 발생할 수 있음 (Worker Service로 구축하는 경우라면 이게 더 맞을 지도?)

 

결론

결론적으로 BasicConsume은 큐에서 메시지를 실시가능로 소비하는데 적합한 방법이며 BasicGet은 메시지를 수동으로 가져오고 처리 할 때 사용하는 방식

 

어떤 방법을 사용할 지는 어플리케이션의 요구사항에 따라 처리 방식을 결정해서 사용하면 될 듯