Apache Kafka 테스트용 오픈소스 Data Stream Generator 공유

Kafka 환경을 구축하고 테스트할 때, 데이터 스트림을 Kafka로 전송해 정상적으로 작동하는지 확인하는 과정은 매우 중요합니다. 이를 위해서는 Kafka로 데이터를 전송할 수 있는 테스트 도구가 필요합니다. 특히, 실제 운영 환경에서 발생할 수 있는 다양한 시나리오를 모사할 수 있는 도구라면, Kafka의 안정성과 처리 능력을 정밀하게 검증할 수 있으며, 동시에 부하 테스트를 통해 시스템을 최적화하는 데도 큰 도움이 됩니다.

저희 회사는 자체 개발한 Data Stream Generator를 활용해 실제 운영 환경에서 발생하는 데이터 스트림을 효과적으로 모방하고, 이를 Kafka로 전송하여 테스트를 수행하고 있습니다. 해당 도구는 오픈소스로 공개되어 있어, 누구나 활용할 수 있도록 공유드립니다.

GitHub - spithainc/Kafka-Datagen: Kafka producer client for data generation

주요 기능

메시지 타입

datagen.quickstart

  • Kafka로 랜덤 메시지를 보내는 옵션입니다.
  • 상세 옵션에서 보낼 메시지 내용의 종류를 선택할 수 있어요.(user, book, car, address, contact, movie, job)

datagen.message-byte

  • Kafka로 byte 사이즈에 맞추어 랜덤 메시지를 보내는 옵션입니다.
  • 만약 100으로 값을 설정한다면 100 byte의 메시지가 전송되게 됩니다.

두 옵션 중 하나의 옵션만 선택해서 사용할 수 있습니다.

프로듀스 타입

datagen.limit-data-amount-per-second

  • 초당 몇 byte 정도의 메시지를 전송할 것인지 선택하는 옵션입니다.
  • 만약 1,000으로 값을 설정한다면 초당 1,000byte의 메시지가 전송되게 됩니다.

datagen.interval

  • 하나의 메시지를 보내고 그다음 메시지를 보낼 때까지의 기간(ms단위)을 선택하는 옵션입니다.
  • 만약 10으로 값을 설정한다면 메시지 간의 인터벌은 10ms 간격을 두게 됩니다.

datagen.rate-per-second

  • 초당 몇 개의 메시지를 보낼지 선택하는 옵션입니다.
  • 만약 100으로 값을 설정한다면 초당 100개의 메시지가 전송되게 됩니다.

세 옵션 중 하나의 옵션만 선택해서 사용할 수 있습니다.

이 Datagen은 일반적인 Kafka Producer를 구성하듯이 설정해주시면 곧바로 사용할 수 있습니다.

4 Likes

CNCF Project로 한번 신청해보시면 어떨까요? GitHub - cncf/sandbox: Applications for Sandbox go here! ⏳📦🧪

CNCF 프로젝트로 등록하는 것은 생각도 못하고 있었는데 좋은 의견 감사합니다.
절차가 까다롭지는 않을까 우려되지만 진행해보겠습니다.

1 Like

일단 한번 시도해보는 거죠. 등록 절차 등 문의가 있으시면 연락 또는 댓글 주세요. :slight_smile: