토픽을 생성할 때 가장 중요한 두 가지 요소는 파티션 개수와 복제 계수다. 이 두 요소는 시스템 성능과 지속성에 직접적인 영향을 미치기 때문에 처음부터 신중하게 설정해야 한다.

토픽 생성 후 파티션 개수를 늘리면 키 순서가 보장되지 않게 된다. 키를 기반으로 데이터를 전송하는 경우 이는 심각한 문제가 될 수 있다.

토픽 라이프사이클 중에 복제 계수를 높이면 시스템에 상당한 부담을 준다:
파티션 개수를 결정할 때 고려해야 할 사항들:
성능 측정: 각 파티션이 처리할 수 있는 스루풋(초당 메가바이트)을 측정해야 한다.
파티션 증가의 장점:
파티션 증가의 단점:
권장 파티션 수 계산법:
파티션 수 증가가 필요한 경우:
중요 조언: 반드시 테스트하고, 또 테스트하세요. 각 Kafka 클러스터는 하드웨어에 따라 성능이 다르다.
흔한 실수 피하기: "그냥 파티션 1000개 두자"와 같은 과도한 설정은 피하고, 토픽에 적합한 파티션 수를 설정
운영 환경 권장 값:
복제 계수 증가의 장점:
복제 계수 증가의 단점:
권장사항: 복제 계수 3으로 시작하고, 최소 3개의 브로커를 사용
성능 문제 발생 시: 복제 계수를 줄이기보다 더 좋은 브로커를 사용
중요 경고: 운영 환경에서 절대로 복제 계수를 1로 설정하면 안 된다.
클러스터 내 파티션 제한:
KRaft 모드 사용 시: 수백만 개의 파티션으로 확장 가능 (주키퍼 제한 극복)
확장 전략:
토픽 이름은 자유롭게 지을 수 있지만, 클러스터 관리를 용이하게 하기 위해 일관된 가이드라인을 따르는 것이 좋다.
<message_type>.<dataset_name>.<data_name>.<data_format>
메시지 타입 (message_type):
데이터셋 이름 (dataset_name):
데이터 이름 (data_name):
데이터 포맷 (data_format):
logging.ecommerce.user_clicks.json
queuing.payment_system.transactions.avro
tracking.website.page_views.protobuf
이러한 네이밍 컨벤션은 특히 Kafka에 보안을 적용할 때 더욱 중요해진다. 일관된 분류 체계와 패턴이 있으면 권한 관리와 토픽 구성이 훨씬 쉬워진다.
Kafka 아키텍처를 설계할 때 파티션 개수와 복제 계수는 신중하게 결정해야 하는 중요한 요소다. 처음부터 적절하게 설정하고, 필요에 따라 테스트를 통해 조정하는 것이 중요하다. 또한, 일관된 토픽 네이밍 컨벤션을 사용하면 클러스터 관리가 훨씬 용이해진다.
이러한 가이드라인을 따르면 Kafka 클러스터를 더 효율적으로 관리하고 확장할 수 있으며, 장기적으로 운영 부담을 줄일 수 있다.