이전 실습에서 만들어놨던 Prodcuer와 Consumer 서버를 실행시킨 뒤에, 이번에는 API 요청을 한 번이 아니라 세 번 연속으로 보내보자.
Consumer에서 요청을 성공적으로 처리할 수 있게 to에 입력하는 이메일을 fail@naver.com이 아닌 다른 메일로 수정해서 요청을 보내자.
Consumer 서버의 로그 확인하기
코드에서 이메일 발송 작업이 오래 걸리는 걸 가정하기 위해 Thread.sleep(3000); 코드를 넣어뒀다. 그래서 API 요청을 보내고 나서 로그를 확인해보면 3초마다 이메일 발송 작업이 완료되는 걸 확인할 수 있다. 그런데 한 번에 하나의 이메일 발송 작업만을 처리하기 때문에, 총 3개의 이메일을 보내는 데 9초나 걸린다.
Consumer 역할을 하는 Spring Boot는 멀티 쓰레드를 기반으로 여러 개의 요청을 병렬적으로 처리할 수 있는 구조를 가지고 있는데도 불구하고, 왜 비효율적으로 한 번에 하나의 요청만 처리하고 있는 걸까? 이 문제에 대한 원인은 Kafka의 중요 개념인 파티션(Partition)과 밀접한 관련이 있다. 따라서 다음 강의에서 파티션(Partition)이 뭔지 알아보자.