saay, hi
[4] 단일서버 replication factor 테스트 본문
목적 | - 동일 consumer group에서 replication factor 1개와 3개 비교 |
시나리오 | 1. consumer AP script 작성 후 consumer group 및 topic 생성 → testConsumer.java 작성 2. 동일 consumer group 내에서 replication factor 변화에 따라 어떤 차이점이 있는지 확인 → replication factor 관련된 java option이 없어서 일단 topic 생성 후, 명령어로 replication factor 3개로 증량 → 각 broker 마다 group list 초단위로 조회하여 확인 → topic 생성 뒤, log dir에 변화 있는지 확인( replication factor 증량하게 될 경우 topic name에 동일한 숫자가 따라 붙음 ) → producer AP 데이터 증량 ( 10000 이상 ) |
구성 |
|
replication | 각 메세지들(파티션)을 여러 개로 복제해서 카프카 클러스터 내 다른 브로커에 분산시키는 동작 |
replication factor | replication 동작 시 같은 메시지를 가지는 파티션의 총 개수 ( = 원본 + 복제본) |
[ test 방법 ]
1.consumer group을 조회
broker1 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 40000 40000 0 1stConsumer-7634e4aa-e2fb-4d11-a0ce-5f30cbe93aaf /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
broker2 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 40000 40000 0 1stConsumer-7634e4aa-e2fb-4d11-a0ce-5f30cbe93aaf /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
broker3 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 40000 40000 0 1stConsumer-7634e4aa-e2fb-4d11-a0ce-5f30cbe93aaf /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
2.각 broker마다 watch를 1초간 걸어 topic 전송 뒤, broker 데이터 취득이 고정적인지 1초마다 확인
broker2 에서 먼저 취득 ( 데이터 취득 순서는 계속 다름 ) |
CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 110000 110000 0 1stConsumer-2952408b-b457-4760-b1bb-39a8227ae1cc /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
broker1 이 취득 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 110000 110000 0 1stConsumer-2952408b-b457-4760-b1bb-39a8227ae1cc /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
broker3 이 취득 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_topic_240220 0 110000 110000 0 1stConsumer-2952408b-b457-4760-b1bb-39a8227ae1cc /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer |
3.동일 consumer group 내에 replication 1 / 3 개 조회
broker1 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_test 0 3423 73648 70225 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 1 3333 73381 70048 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 2 3256 72983 69727 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_topic_240220 0 110000 110000 0 - - - |
broker2 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_test 0 20071 73648 53577 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 1 62117 73381 11264 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 2 61824 72983 11159 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_topic_240220 0 110000 110000 0 - - - |
broker3 |
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID cluster_group_240220 cluster_test 0 20071 73648 53577 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 1 62117 73381 11264 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_test 2 61824 72983 11159 1stConsumer-fc1b4b9e-395f-4b5d-9448-ec1c39f0633f /192.168.56.105 consumer-cluster_g roup_240220-1stConsumer cluster_group_240220 cluster_topic_240220 0 110000 110000 0 - - - |
[ 결과 ]
1. replication factor 가 1인 경우, console에 보이는 데이터동기화는 가능하나 데이터는 저장하지 못함 ( broker log에 남지 않음 )
2. 동일 consumer group 내의 broker 1,2,3 모두 동기화되어 동일하게 topic 취득
3. broker 데이터 취득이 고정적이지 않음
→ leader broker가 먼저 데이터 취득한 뒤 follower broker에게 동기화된다고 하였지만 실질적으로 하나의 broker가 고정적으로 먼저받는 현상은 없음
→ 추측 : 서버가 동일하고 port만 달라서 leader broker가 없으며 이상적인 분산서버 설정과는 달리 leader port가 다 다르므로 이와같이 비고정 데이터 취득 현상 발생
[ 의견 ]
broker마다 consumer group 의 1초 간격이 조금씩 다른 이유는 watch명령어에 한계일 수도 있음
replication factor 증량 시, 하나의 leader broker에서 받은 뒤 follower broker에게 뿌리는 형식이라고 생각했으나.. leader broker가 topic받은 후 다른 follower broker에게 전달하는지에 관한 테스트는 차후에 분산서버를 통해 진행할 예정
'kafka 테스트 > cluster 테스트' 카테고리의 다른 글
파티션 분산(이동) 테스트 (0) | 2024.08.07 |
---|---|
카프카 확장 테스트 시나리오 (0) | 2024.07.03 |
[3] 단일서버 replication factor 1와 3대 비교 테스트 (0) | 2024.06.27 |
[2] replication factor 증설 후, 기존 데이터 유지 확인 테스트 (0) | 2024.06.27 |
[1] partition - replication factor test ( json 파일로 topic leader 변경 및 replication factor 증량 ) (0) | 2024.06.27 |