[서버 기준 테스트]

# 테스트 방안

 - 서버에 대해 한대씩 내리면서 data producer/consume 정상 여부 확인

 - 서버를 재기동 하면서 data/snapshot data 동기화 여부 확인

 - 서버 down 하면서 data/offset 동기화 여부확인

 - 1대 down 했을때와 2대 down 했을 때 차이 확인

 - 아래 그림의 외곽 파란색 네모 기준 왼쪽에서 순서대로 1,2,3번 서버로 지칭함.

대충 다 연결 됐단 이야기_abbf_240205

 

 

 

1) 2번 서버 1대만 shutdown

  •  3번 서버에서 모니터링 중이던 consumer group describe 에러 발생, topic describe는 정상
  • 1,3번 서버 데이터 정상 produce/consume 확인 완료.
    -> kafka data 파일 및 consumer api 에서 data consume 내용 출력 됨.
  • 2번서버 기동 후 zookeeper 기동. 데이터 동기화 여부 관련 5분정도 대기 --> 동기화 x
  • 2번서버 broker 기동 후 kafka data 동기화 여부 확인 완료.
  • 2번서버에서 뜨다 죽은 consumer api 기동 및 offset 동기화 확인.

 

이때가지만 해도 kafka data의 replication-offset-checkpoint 파일과 log파일 비교 할 생각을 못했었는데,

아래 2대 down 테스트 하면서 비교진행.

 

2) 2,3번 서버 2대 shutdown

  • 2,3번서버 shutdown 후 1번 서버에서 모니터링 안뜸
  • 현재 살아있는 1번 서버에 대해
    0번 파티션에 대해, 파티션 리더 값이 1번서버에 연결인지, 0번 파티션만 지속적으로 topic data는 인입 확인.
  • produce api가 3개 서버를 보게 되어있어서 그런지 프로세스 end 프린트까지 떨어지는데 시간이 오래걸림
    (타임아웃에 의한 종료인지는 모르겠음)
  • 1번에 떠있는 consumer api가 더 이상 데이터 consume을 하지  않았고
    1번 서버의 consume group id 확인 결과 2번 서버로 지정된 topic01-g2로 되어있어, broker id를 1번서버로, group id를 2번으로 변경하여 api 재기동
    --> log data 기반으로는 consume 진행 된 것으로 보여지나, api에 출력내용은 없었음.
     *** 아래 다시 적었지만 해당 데이터는 shutdown 전에 적재된 consume 데이터로 판단됨

 

 [offset 현황]

 - producer

  data log 상에는 정상으로 남는데, replication-offset-checkpoint는 동기화 되지 않음.

  # kafka-dump-log.sh  (옵션 : --files 파일명 --print-data-log)
  | offset: 494 CreateTime: 1708652155313 keySize: 1 valueSize: 1 sequence: -1 headerKeys: [] key: 8 payload: 8


  # cat replication-offset-checkpoint | grep topic
  topic01 0 475

 

 

-consumer

producer와 마찬가지로 dump log상에는 진행으로 나오나 replication-offset-checkpoint는 동기화 되지 않음

  # kafka-dump-log.sh   (옵션 : --files 파일명 --offsets-decoder)
 | offset: 839 CreateTime: 1708653716073 keySize: 27 valueSize: 24 sequence: 0 headerKeys: [] key: offset_commit::group=topic01-g2,partition=topic01-0 payload: offset=475


  # cat replication-offset-checkpoint | grep consumer
  __consumer_offsets 30 827

 

[2,3번 서버 기동]

2,3번서버 zookeeper만 기동했는데, broker1의 data의 replication-offsets-checkpoint 값이 바뀜

 ** topic01 의 다른파티션들에 대한 값들도 변경 확인.

broekr1/zookeeper1 up broker1/zookeeper 1,2,3 up
# cat replication-offset-checkpoint | sort
__consumer_offsets 0 0
__consumer_offsets 6 0
__consumer_offsets 30 827
__consumer_offsets 18 0
__consumer_offsets 21 0
__consumer_offsets 48 0
__consumer_offsets 33 0
__consumer_offsets 24 0
__consumer_offsets 3 0
__consumer_offsets 27 0
__consumer_offsets 42 0
__consumer_offsets 39 0
__consumer_offsets 15 0
__consumer_offsets 12 0
__consumer_offsets 36 0
__consumer_offsets 45 0
__consumer_offsets 9 0
topic01 0 475
topic01 1 391
topic01 2 444

# cat replication-offset-checkpoint | sort
__consumer_offsets 0 0
__consumer_offsets 6 0
__consumer_offsets 30 857
__consumer_offsets 18 0
__consumer_offsets 21 0
__consumer_offsets 48 0
__consumer_offsets 33 0
__consumer_offsets 24 0
__consumer_offsets 3 0
__consumer_offsets 27 0
__consumer_offsets 42 0
__consumer_offsets 39 0
__consumer_offsets 15 0
__consumer_offsets 12 0
__consumer_offsets 36 0
__consumer_offsets 45 0
__consumer_offsets 9 0
topic01 0 495
topic01 1 395
topic01 2 452

 

 

zookeeper 2대만 우선 기동 완료 하자 broker1번 server.log 에서 미친듯이 나던 에러가 멈췄다.

broker2,3 기동 전이라서 그런지

 - kafka topic 의 파티션 데이터들은 여전히 동기화 안되어 있었고
 - replication-offset-checkpoint값도 동기화 이전이었다.

 

broker2,3 kafka 기동 전
broker1 broker2 broker3
[kafka@broker1 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8504 Feb 23 10:35 topic01-0/00000000000000000000.log 
-rw-------. 1 kafka kafka 7352 Feb 23 10:18 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7780 Feb 23 10:18 topic01-2/00000000000000000000.log
[kafka@broker2 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8019 Feb 23 10:17 topic01-0/00000000000000000000.log
-rw-------. 1 kafka kafka 7194 Feb 23 10:17 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7586 Feb 23 10:17 topic01-2/00000000000000000000.log
[kafka@broker3 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8213 Feb 23 10:18 topic01-0/00000000000000000000.log
-rw-------. 1 kafka kafka 7352 Feb 23 10:18 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7780 Feb 23 10:18 topic01-2/00000000000000000000.log
__consumer_offsets 0 0
__consumer_offsets 12 0
__consumer_offsets 15 0
__consumer_offsets 18 0
__consumer_offsets 21 0
__consumer_offsets 24 0
__consumer_offsets 27 0
__consumer_offsets 3 0
__consumer_offsets 30 857
__consumer_offsets 33 0
__consumer_offsets 36 0
__consumer_offsets 39 0
__consumer_offsets 42 0
__consumer_offsets 45 0
__consumer_offsets 48 0
__consumer_offsets 6 0
__consumer_offsets 9 0
topic01 0 495
topic01 1 395
topic01 2 452
__consumer_offsets 1 0
__consumer_offsets 10 0
__consumer_offsets 13 0
__consumer_offsets 16 0
__consumer_offsets 19 0
__consumer_offsets 22 0
__consumer_offsets 25 0
__consumer_offsets 28 0
__consumer_offsets 31 668
__consumer_offsets 34 0
__consumer_offsets 37 0
__consumer_offsets 4 0
__consumer_offsets 40 0
__consumer_offsets 43 0
__consumer_offsets 46 0
__consumer_offsets 49 0
__consumer_offsets 7 0
topic01 0 475
topic01 1 391
topic01 2 444
__consumer_offsets 11 0
__consumer_offsets 14 0
__consumer_offsets 17 0
__consumer_offsets 2 0
__consumer_offsets 20 0
__consumer_offsets 23 0
__consumer_offsets 26 0
__consumer_offsets 29 1607
__consumer_offsets 32 0
__consumer_offsets 35 0
__consumer_offsets 38 0
__consumer_offsets 41 0
__consumer_offsets 44 0
__consumer_offsets 47 0
__consumer_offsets 5 0
__consumer_offsets 8 0
topic01 0 475
topic01 1 391
topic01 2 444

 

broker2,3 kafka 기동 후
broker1 broker2 broker3
[kafka@broker1 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8504 Feb 23 10:35 topic01-0/00000000000000000000.log
-rw-------. 1 kafka kafka 7352 Feb 23 10:18 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7780 Feb 23 10:18 topic01-2/00000000000000000000.log
[kafka@broker2 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8504 Feb 23 11:25 topic01-0/00000000000000000000.log
-rw-------. 1 kafka kafka 7352 Feb 23 11:25 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7780 Feb 23 11:25 topic01-2/00000000000000000000.log
[kafka@broker3 kaf_data]$ ls -l topic*/*.log
-rw-------. 1 kafka kafka 8504 Feb 23 11:25 topic01-0/00000000000000000000.log
-rw-------. 1 kafka kafka 7352 Feb 23 10:18 topic01-1/00000000000000000000.log
-rw-------. 1 kafka kafka 7780 Feb 23 10:18 topic01-2/00000000000000000000.log
__consumer_offsets 0 0
__consumer_offsets 12 0
__consumer_offsets 15 0
__consumer_offsets 18 0
__consumer_offsets 21 0
__consumer_offsets 24 0
__consumer_offsets 27 0
__consumer_offsets 3 0
__consumer_offsets 30 857
__consumer_offsets 33 0
__consumer_offsets 36 0
__consumer_offsets 39 0
__consumer_offsets 42 0
__consumer_offsets 45 0
__consumer_offsets 48 0
__consumer_offsets 6 0
__consumer_offsets 9 0
topic01 0 495
topic01 1 395
topic01 2 452
__consumer_offsets 1 0
__consumer_offsets 10 0
__consumer_offsets 13 0
__consumer_offsets 16 0
__consumer_offsets 19 0
__consumer_offsets 22 0
__consumer_offsets 25 0
__consumer_offsets 28 0
__consumer_offsets 31 672
__consumer_offsets 34 0
__consumer_offsets 37 0
__consumer_offsets 4 0
__consumer_offsets 40 0
__consumer_offsets 43 0
__consumer_offsets 46 0
__consumer_offsets 49 0
__consumer_offsets 7 0
topic01 0 495
topic01 1 395
topic01 2 452
__consumer_offsets 11 0
__consumer_offsets 14 0
__consumer_offsets 17 0
__consumer_offsets 2 0
__consumer_offsets 20 0
__consumer_offsets 23 0
__consumer_offsets 26 0
__consumer_offsets 29 1607
__consumer_offsets 32 0
__consumer_offsets 35 0
__consumer_offsets 38 0
__consumer_offsets 41 0
__consumer_offsets 44 0
__consumer_offsets 47 0
__consumer_offsets 5 0
__consumer_offsets 8 0
topic01 0 495
topic01 1 395
topic01 2 452

 

[추가 모니터링/확인]

topic consumer group 에 대해 describe로 확인 결과

 - 기존  partiton leader가 좀 다양했었는데, 전부 1번으로 되어있었고

 -  consume이 되었다고 생각했던 데이터가 LAG에 남아있다.

 

consume API를 다시 기동시켜 흘리고 나니 __consumer_offset값이 증가 되었다.

 

위 분홍색 내용인 consumer offset값이 증가가 된건 기존 producer데이터 인듯 하고,

결론적으로 서버 2대가 shutdown 되고서  producer로 흘려진 값들은 정상적으로 consume이 되지 않은 것이다.

broker1 broker2 broker3
__consumer_offsets 30 857 __consumer_offsets 31 672 __consumer_offsets 29 1607
__consumer_offsets 30 881 __consumer_offsets 31 691 __consumer_offsets 29 1674

 

 

 

728x90

+ Recent posts