본문 바로가기

Backend/NestJS

rabbitMQ) prefetchCount란?

event-lisenter repo에서 app.connetMicroservice<MicroserviceOptions> {} 내부에 prefectCount라는게 있었다. 

이것을 처음 보아서 이번 기회에 정리해두려고 한다. 

 

prefetchCount:1로 설정이 되어있었는데, 서버당 한 번에 1개의 메시지를 처리한다는 의미이다. 

이를 5로 조정한다면, 서버당 한 번에 5개의 메시지를 가져와 처리할 수 있다는 의미이다. 

 

그렇다면 여기서 의문이 생겼었다. 서버당 메시지를 받는 개수가 정해져 있는거면, 한 서버의 하나의 메시지만 온다는 것이 잘 와닿지 않는다. => 이는 여러 개의 이벤트가 큐에 쌓여있을 때 동시에 몇 개까지 땡겨서 작업하겠는가?에 대한 것이다. 

prefetch:5로 설정했을 경우 1개만 작업하던 것을 동시에 5개까지 메시지를 땡겨와 작업하는 느낌이라고 한다. 

(참고로 js는 싱글스레드지, 멀티스레드로 작업하는 것은 아니다)