프로그래밍/RabbitMQ
Consumer에 BasicConsume, BasicGet 차이
흑우마스터
2023. 4. 17. 11:54
BasicConsume
서버와 연결이 유지 되는 동안 메시지를 지속적으로 수신하도록 구독하며 이 메서드를 사용하면 더 이상 메시지를 가져오기 위해 수동으로 호출 할 필요가 없음
메시지가 큐에 도착하면 자동으로 Consumer에게 전달되고 이렇게 전달 된 메시지는 Received 이벤트 핸들러에서 처리가 가능함
장점
- 큐에 메시지가 도착하는 동안 즉시 전달되므로 지연 시간이 최소화 됨
- 메시지를 수도으로 가져오기 위한 코드를 작성할 필요가 없음
단점
- 서버와 연결이 종료되면 메시지 전달이 중단 됨
- 비정상적인 연결 중단에 대한 처리 필요
BasicGet
메시지를 수동으로 가져오는 방법으로 이 메서드를 호출할 때마다 큐에서 메시지를 하나씩 가져옴. 메시지가 없으면 null을 반환하며 메시지를 가져온 후 메시지를 처리하고 수동으로 확인해야 함
장점
- 메시지를 가져오는 행위를 제어할 수 있어 지정된 요구사항에 따라 코드 작성
단점
- 메시지를 가져오려면 코드를 주기적으로 실행해야 함
- 추가 작업이 필요하며 지연시간이 발생할 수 있음 (Worker Service로 구축하는 경우라면 이게 더 맞을 지도?)
결론
결론적으로 BasicConsume은 큐에서 메시지를 실시가능로 소비하는데 적합한 방법이며 BasicGet은 메시지를 수동으로 가져오고 처리 할 때 사용하는 방식
어떤 방법을 사용할 지는 어플리케이션의 요구사항에 따라 처리 방식을 결정해서 사용하면 될 듯