관리 메뉴

The Nirsa Way

[Apache Kafka] 실시간 메시지 병렬 처리 실험 - 1 (셋팅, JMeter, plugins-manager) 본문

Development/Apache Kafka

[Apache Kafka] 실시간 메시지 병렬 처리 실험 - 1 (셋팅, JMeter, plugins-manager)

KoreaNirsa 2025. 7. 22. 11:12
반응형

 

실시간 메시지 병렬 처리 실험 - 1 (셋팅, JMeter, plugins-manager)

병렬 처리 실험을 위한 셋팅입니다. 스프링 부트에 간단한 주문 시스템을 만들어 두었으니 해당 컨트롤러로 요청하여 부하 테스트를 진행하기 위해 셋팅하는 포스팅입니다.

우선 https://jmeter.apache.org/download_jmeter.cgi으로 접속하여 다운로드 받아주세요. 저는 윈도우 환경이므로  zip 파일을 다운로드 받았습니다.

 

이후 jmeter-plugins 설치를 위해 https://jmeter-plugins.org/install/Install/으로 접속하여 다운로드 받아주시고 JMeter의 lib/ext 폴더 안에 설치한 jmeter-plugins-manager-1.11.jar를 넣어주세요.

 

설치가 완료 되었다면 bin/ApacheJMeter.jar를 클릭하여 실행 후 Plugins Manager를 클릭해주세요. (만약 이미 JMeter가 실행중이었다면 재시작을 해주시면 보입니다)

 

Available Plugins → DI KafkaMeter를 체크하고 Apply Changes and Restart JMeter를 클릭하여 적용해주세요. 

 

Add → Threads (Users) → Tread Group을 클릭해주세요.

 

다음과 같이 설정합니다. 3000명의 사용자(Number of Threads)가 1초에 모두 시작(Ramp-up period)하며 LoopCount Infinite는 각 유저들이 종료되지 않고 계속적으로 반복을 수행하게 합니다. 60초 동안 테스트를 진행(Duration) 하며 실행 후 3초 뒤 시작(Startup delay) 하는 설정입니다.


Spring Boot로 요청하여 부하 테스트

Add → Sampler → HTTP Request를 클릭해주세요. 위에서 생성한 쓰레드 그룹을 우클릭 해주셔야 보입니다.

 

아래와 같이 설정해주세요. 해당 설정 내용은 각자 환경에 맞춰 해주셔야 하고, 저의 경우 

{
  "orderId": "${__UUID()}",
  "itemName": "item-${__Random(1,100)}",
  "quantity": ${__Random(1,10)}
}

 

이제 위에서 만든 HTTP Request를 우클릭하여 Add → Config Element → HTTP Header Manager를 클릭해주세요.

 

Add 클릭 후 아래의 Name - Value를 채워주신 뒤 Save를 눌러주세요.

 

쓰레드 그룹 우클릭 → Add → Timer → 상수 처리량 타이머

 

이후 1분간 발생할 처리량을 150,000건(약 2500 TPS)으로 고정시킨 뒤 현 쓰레드 그룹 내의 모든 쓰레드를 활성화하는 옵션을 선택해주빈다.

 

이번엔 쓰레드 그룹을 우클릭하여 Add → Listener → Summary Report를 클릭합니다.

 

이후 상단의 실행 버튼을 눌러주시면 요청이 됩니다.

 

마지막으로 Summary Report을 눌러보면 아래와 같은 결과를 확인해보실 수 있습니다.

반응형