개발자

멱등성 카프카 질문

2024년 02월 18일조회 337

카프카 3.0 이상부터는 멱등성 카프카가 기본 옵션으로 설정되어 있는데 실무에서 멱등성 카프카로 사용 많이 하시나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

이양일님의 프로필 사진

안녕하세요! 말씀하신 멱등성 카프카가 3.0 부터 변경된 Kafka Producer 의 멱등성 설정과 관련된 default 값이 바뀐 부분이라 이해하였습니다. Kafka Producer 의 멱등성 기능은 Kafka 에서 지원하는 "Exactly Once Delivery" 기능의 가장 중요한 요소 중 하나입니다. Kafka 의 구조상 메세지 전달의 안정성과 성능은 trade off 관계이지만, Kafka Producer 의 멱등성 기능을 활성화 시켜도 생각보다 이에 대한 성능저하가 미미하다고 판단하여 3.0 부터 default 값을 변경한거로 이해하고 있습니다. 이에 대한 자세한 내용은 KIP-679(https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default) 내용을 참고해주시면 되겠습니다. Consumer 단에서 메세지 중복 처리에 대한 방어를 해주면 크게 이슈는 없습니다만, 그렇지 않을 경우 Producer 의 멱등성 기능을 활성화 하는 것이 좋습니다. 왜냐하면 생각보다 다양한 이슈로 메세지 중복이 발생할 수 있거든요. 간단한 예로 Kafka Broker 에서는 Producer 가 전송한 메세지를 성공적으로 작성하고 복제했지만, 네트워크 문제로 인해 이에 대한 응답이 정상적으로 Producer 에 전달하지 못하면 Producer 는 이를 일시적인 네트워크 문제로 처리하고 메세지 전송을 다시 시도하여 동일한 메세지가 전달하는 상황이 발생하게 됩니다. 그래서 멱등성 설정을 해준 뒤에 운영을 해보시면 간혹 OutOfOrderSequenceException 을 경험하실 수 있는데 이게 중복된 메세지가 전송되었을 때 발생하는 에러라고 이해하시면 됩니다. 저희 팀에서도 Kafka 를 운영할때 Producer 의 멱등성 설정을 활성화하여 불필요한 메세지가 중복으로 발생하지 않도록 설정하고 있습니다. 저의 작은 지식이 조금이나마 도움이 되시길 바라겠습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!