우리는 카프카를 사용하며 고가용성이다, 안정적이다는 이야기를 하며 사용한다. 어떤부분에 있어서 고가용성과 안정적인 부분이 있는지 알아보자.

카프카를 설치하고 토픽을 생성하며 우리는 replication 갯수, 그리고 partition 의 갯수를 정의하게 된다. 이때 replication 과 partation의 의미를 알아보자.

replication-factor 3 --partitions 3 우리는 토픽을 생성하며 보통 이렇게 옵션을 넣는다.

위에 설명 그대로 토픽 생성시 파티션 3개를 생성하고 , 토픽에 메세지가 오면 다른 파티션으로 복재본을 3개 만든다는 것이다.

즉 그림으로 보면 다음과 같다.

Untitled

이렇게 됨으로써 Broker Node#01이 동작불능 상태가 되어도 Broker #02가 Master로 승격하며 서비스가 정상 작동되고 메세지 유실없이 실행될 수 있다.

Untitled

어디서 많이 본거 같지 않나요? Redis 나 Hadoop을 cluster로 묶었을때 장애가 발생되면 fail over 되는기능이랑 똑같죠. 물로 이것은 카프카도 clustering 설정을 했을때 입니다.

그럼 이제 ACK 모드와 ISR 에대해 이야기해보겠습니다. ACK 란 앞서 보았듯이 Producer 에서 topic에 메세지를 전달한뒤 송신여부를 확인 하는 설정입니다. ACK 모드는 세가지가 있습니다 0,1,ALL

이 세가지 모드를 하나씩 알아봅시다.