KafValidator

command module
v0.0.0-...-9c74388 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2022 License: MIT Imports: 10 Imported by: 0

README

GitHub go.mod Go version GitHub GitHub all releases

KafValidator

1) 목적

Kafka 구성 시 정상 동작 여부를 확인하기 위한 기본적인 Test Application 입니다.

2) 주요 기능
  • Pub/Sub 기능 검증
  • Pub/Sub 평균 소요 시간 측정 (단일 쓰레드 기준)
    • 첫 값 제외 평균 측정 가능 ( 첫 값의 경우 kafka 와의 오버헤드로 인해 보다 많은 소요시간이 걸릴 수 있습니다. )
  • Pub/Sub 단일 건수 최대/최소 시간 측정 ( 단일 쓰레드 기준 )
    • 첫 값 제외한 단일 pub/sub 중 최대 소요 시간 측정 가능
    • pub/sub 최소 소요 시간 측정 가능
  • 메세지 사이즈 조정하여 테스트 가능
3) 주의 사항!!!!!
반드시! 테스트 토픽에 진행하길 권고 합니다.

주의) 서비스용 토픽에 진행할 경우 consumer group이 다르면 이슈가 없을 수 있으나(장담할 수는 없습니다.) 혹여 consumer group이 같았을 경우 서비스 메시지가 commit되는 이슈가 있을 수 있습니다.

4) Download

Release 에서 알맞는 버전을 다운로드 하여 실행

5) 실행 방법
# 압축 해제 후
$ tar -xvzf kafvld_VERSION.tar.gz ./

# 압축 해제 후 결과, 이후 config 수정 후 실행
$ ls
kafvld
config_sample.json

# run with config file
$ kafvld -config ${CONFIG_PATH}
6) 설정 파일
{  
    // kafka broker address (list)
    // ex) kafka 서버 입력 3대일 경우 아래 내용 참조
   "bootstrapServer":[
      "kafka01:9092",
      "kafka02:9092",
      "kafka03.9092"
   ],
   // kafka test topic
   "topic":"test-topic",
   // producer
   "producer":{
        // producer client id
      "clientId":"test-producer",
        // producer acks
        // 0 : broker does not send any response or acks
        // -1 or all: all broker committed ( sync replica )
        // 1 : one broker committed
        // 권장: 1
      "acks":"1",
      // default msg : 51byte
      // Sets the bytes to be appended to the send message.
      // ex) if valueByteSize = 1000 --> The size of one message is 1000 + 51 = 1051 byte
      // 기본 메세지는 51 byte 이며, 51 + ? = byte 설정할 때 사용합니다.
      // ex) 만약 valueByteSize 가 1000 일 경우 --> 전체 1000 + 51 = 1051 byte
      "valueByteSize": 1000
   },
   // consumer
   "consumer":{
        // consumer group id
      "groupId":"test-consumer-group"
   },
   // test info
   "simple":{
        // send msg count ex) 10, 100 ..
      "msgCount":100
   }
}
7) 실행 결과 예시
TEST KEY: 08fc3467-a02d-480d-964c-f7f557e4493d # 테스트 키 ( 테스트 마다 다름 )
 Running... please waiting


################### Reslut ####################
[CONFIG] Kafka Broker: localhost:9092 # 카프카 브로커 리스트
[CONFIG] Target Topic: test-topic # 토픽 명
[CONFIG] Total Msg Count: 10 # 테스트 메시지 발행 갯수
[CONFIG] Msg Size: 1051 byte # 한 건당 메세지 수
[CONFIG] Total Msg Size: 10510 byte # 전송한 총 메세지 크기 ( 한 건당 메세지 수 x  메세지 발생 수)

[PRODUCER] Msg Pub Success Count: 10 # 메세지 pub 성공 수
[PRODUCER] Msg Pub Fail Count: 0  # 메세지 pub 실패 수
[PRODUCER] Send Msg Average ( Enclude First ): 107 ms #(첫 값 포함) 메세지 전송 평균 소요 시간
[PRODUCER] Send Msg Average ( Exclude First ): 9 ms #(첫 값 제외) 메세지 전송 평균 소요 시간
[PRODUCER] Send First Msg Time: 994 ms # 첫 값의 메세지 전송 소요시간
[PRODUCER] Send Msg Max Time ( Exclude First ) : 13 ms # (첫 값 제외) 메세지 전송 건수 중 최대 소요 시간
[PRODUCER] Send Msg Min Time: 9 ms # 메세지 전송 건수 중 최소 소요 시간

[CONSUMER] Msg Sub Success Count: 10 # 메세지 sub 성공 수
[CONSUMER] Msg Sub Fail Count: 0 # 메시지 sub 실패 수
[CONSUMER] Msg Sub Etc Count: 0 # 현재 테스트와 무관한 메시지 수신시 etc 카운트 증가 (보통 consumer group 변경될 경우 커밋되지 않은 메세지 유입 가능)
[CONSUMER] Pub->Sub Msg Time Average ( Enclude First ): 866 ms # (첫 값 포함) 메세지 전송->수신 평균 소요 시간
[CONSUMER] Pub->Sub Msg Time Average ( Exclude First ): 850 ms # (첫 값 제외) 메세지 전송->수신 평균 소요 시간
[CONSUMER] Pub->Sub First Msg Time: 1009 ms # 첫 메세지 전송->수신 소요 시간
[CONSUMER] Pub->Sub Msg Time Max ( Exclude First ) : 925 ms # (첫 값 제외 )메세지 전송->수신 최대 소요 시간
[CONSUMER] Pub->Sub Msg Time Min: 62 ms # 메세지 전송->수신 최소 소요 시간
#################################################

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL