[Kafka] kafka 리플리케이션

Mineru·2022년 1월 29일
0

카프카에서 리플리케이션이란?

각 메세지들을 여러 개로 복제해서 카프카 클러스터 내 브로커들에 분산시키는 동작을 의미
따라서 하나의 브로커가 어떠한 이유로 종료되더라도 카프카는 안정성을 유지할 수 있다.

./kafka-topics.sh --bootstrap-server kafka.server.01:9092 --create --topic test-overview01 --partitions 1 --replication-factor 3

해당 명령어로 test-overview01라는 토픽을 만들었다.
--replication-factor 옵션은 카프카 안에 몇개의 리플리케이션을 유지하겠냐는 것을 의미한다.

예를 들어 --replication-factor 1 이라고 하면 리플리케이션이 1개(원본만) 있다는 것이다.
--replication-factor 3은 리플리케이션이 3개(원본 포함) 있다는 것이다.

정확하게는 토픽 자체가 복제 되는 것이 아니라 토픽의 파티션이 복제 되는 것이다.

안정성을 목적으로 모든 토픽에 대해 각 3개의 리플리케이션으로 설정할 수 있다.
리플리케이션 팩터 수가 커지면 안정성은 높아지지만 그만큼 브로커의 리소스를 많이 사용하게 된다.
따라서 복제에 대한 오버헤드를 줄여서 최대한 브로커를 효율적으로 사용하는 것을 권장한다고 한다.

토픽 생성 시 유의점

토픽 생성 시 다음과 같은 기준을 세워두고 리플리케이션 팩터 수를 설정해 사용하면 더 좋다고 한다.

  • 테스트나 개발 환경 : 리플리케이션 팩터 수를 1로 설정
  • 운영 환경(로그성 메시지로서 약간의 유실 허용) : 리플리케이션 팩터 수를 2로 설정
  • 운영 환경(유실 허용하지 않음) : 리플리케이션 팩터 수를 3으로 설정
profile
Daily Coding

0개의 댓글