[Infra]: 일관된 테스트 결과를 위한 테스트 진행 과정 변경 #13

Closed
opened 2025-06-27 10:42:02 +00:00 by pricelees · 0 comments
Owner

배경

배경

이전 테스트 과정에서는, 애플리케이션 실행 -> 레코드 삽입 순서로 진행했었습니다. 어느정도 예상한 결과이긴 했으나, 테스트를 반복 수행시 테스트 결과의 일관성이 아주 많이 떨어진다는 것을 확인하였음.

consumer_lag.png

하나의 예시는 위 사진의 컨슈머 랙이, 첫 시도에서 압도적으로 높은 값이 나오고 있으며 이게 일관되지 않고 두 번째 시도에 압도적으로 높은 값이 나오는 등의 문제가 있었음.

원인

처음 구현을 할 때도 예상했던 문제인 "테스트 레코드 삽입용 프로듀서 + 브로커 3개 + 컨슈머가 모두 같은 물리 서버(로컬 노트북)에서 실행되는 것으로부터 오는 서로간의 간섭" 으로 추측됨. 따라서 이 경우에 브로커와 애플리케이션을 완전히 분리할 수는 없겠으나, 테스트 레코드를 추가하는 과정 / 컨슈머가 처리하는 과정을 분리하는 것 만으로 어느정도는 해결 될 것으로 추측됨.

작업 내용 (배포 관련)

배포 스크립트를 아래 순서로 개선합니다.

  1. 브로커 실행 후 토픽 생성 & 테스트 레코드 추가
  2. 첫 번째 컨슈머 애플리케이션 실행
  3. 첫 번째 컨슈머 애플리케이션 종료
  4. 브로커 재시작 및 토픽 생성 & 테스트 레코드 추가
  5. 두 번째 애플리케이션 작업

기타 및 참고자료

No response

### 배경 ### 배경 이전 테스트 과정에서는, 애플리케이션 실행 -> 레코드 삽입 순서로 진행했었습니다. 어느정도 예상한 결과이긴 했으나, 테스트를 반복 수행시 테스트 결과의 일관성이 아주 많이 떨어진다는 것을 확인하였음. ![consumer_lag.png](/attachments/643e1cb9-8197-44b1-b661-382ceaa409ab) 하나의 예시는 위 사진의 컨슈머 랙이, 첫 시도에서 압도적으로 높은 값이 나오고 있으며 이게 일관되지 않고 두 번째 시도에 압도적으로 높은 값이 나오는 등의 문제가 있었음. ### 원인 처음 구현을 할 때도 예상했던 문제인 "테스트 레코드 삽입용 프로듀서 + 브로커 3개 + 컨슈머가 모두 같은 물리 서버(로컬 노트북)에서 실행되는 것으로부터 오는 서로간의 간섭" 으로 추측됨. 따라서 이 경우에 브로커와 애플리케이션을 완전히 분리할 수는 없겠으나, **테스트 레코드를 추가하는 과정 / 컨슈머가 처리하는 과정을 분리하는 것 만으로 어느정도는 해결 될 것으로 추측**됨. ### 작업 내용 (배포 관련) 배포 스크립트를 아래 순서로 개선합니다. 1. 브로커 실행 후 토픽 생성 & 테스트 레코드 추가 2. 첫 번째 컨슈머 애플리케이션 실행 3. 첫 번째 컨슈머 애플리케이션 종료 4. 브로커 재시작 및 토픽 생성 & 테스트 레코드 추가 5. 두 번째 애플리케이션 작업 ### 기타 및 참고자료 _No response_
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pricelees/understanding-kafka-consumer#13
No description provided.