적정 파티션 개수를 정할 때의 핵심은 ‘처리가 지연되는 메시지가 생기지 않는 선에서 파티션을 최소로 설정하는 것’이다. 공식으로 표현하자면 다음 공식을 만족하게 파티션 수를 결정하면 된다.
프로듀서가 보내는 메시지량 ≤ 하나의 쓰레드가 처리하는 메시지량 x 파티션 수
이 설명을 조금 더 쉽게 이해하기 위해서 대형 마트를 다시 한 번 떠올려보자. 대형 마트에 계산대를 몇 대를 열 지 결정할 때, 손님이 계산을 하기까지 많이 안 기다리는 선에서 계산대의 수를 정해야 할 것이다. 계산대를 적게 열면 계산을 기다리는 손님의 줄이 시간이 갈수록 엄청 길어지면서 불만이 터져나올 것이다. 그렇다고 계산대를 무작정 많이 열게 되면 직원을 많이 고용해야 하기 때문에 마트 입장에서는 손해이다. 그래서 손님의 줄이 길어지지 않는 선에서 계산대 수를 결정해야 할 것이다.
다시 본론으로 돌아가서 파티션 수를 결정하는 방법에 대해 알아보자.
몇 개의 쓰레드를 사용해야 처리량이 가장 높아지는 지 측정하기
Spring Boot 서버는 멀티 쓰레드 기반이기 때문에 동시에 여러 요청을 처리할 수 있다. 이 때, 몇 개의 쓰레드를 사용해야 요청을 가장 많이 처리할 수 있는 지 측정해야 한다.