kafka ack mode 란?

카프카에는 ack 모드라는것이 있다. acknowledgment의 약어이다. (어렵다..) 이 ack 모드는 메세지를 성공적으로 처리했는지 kafka 에게 알리는 방식을 말한다. 방식에는 다음과 같이 세가지 방식이 있다. ack=0, ack=1, ack=all

이 모드들은 메세지의 송수신방식에 대한 설정이다. kafka는 메세지의 송신과 수신을 보장하기 위해 Producer 가 메세지를 송신할때 Broker가 메세지를 수신하고, Consumer가 Broker 에서 메세지를 수신할때까지 기다리는 방식을 사용한다.

쉽게 말해 ack mode란 ?

Producer가 kafka의 broker 로 메세지를 보내게 되는데, producer 가 보낸 메세지를 kafka가 잘 받았는가? 에 대하여 확인을 할것인지 아닌지에 대한 결정이다.

ACK Mode의 종류는 다음과 같다.

앞서 보았던 브로커, 파티션과 리플리카셋을 참고해보자. 브로커? 파티션과, 리플리케이션, ISR 이란? 의글을 참고해 보면 ack=0 인경우엔 리플리케 셋과 연관이 없다고 봐야 하고(복제도 없고, 보냈는지 안보냈는지 확인하지도 않기 때문이다.), ack 모드가 1이상인경우에만 리플리카셋과 연관이 있다. 이유는 ack 모드에 따라 동작하는 방식이 다르기 때문이다.

ack 모드와 ISR , replication 관계에 대한 설명은 해당페이지를 참고한다.