3.2 토픽과 파티션

토픽과 파티션

토픽(Topic) : 카프카에서 데이터를 구분하기 위해 사용하는 단위.(1개 이상의 파티션을 소유)

레코드(Record) : 파티션에 저장된 데이터.

  • 파티션은 병렬처리의 핵심으로, 같은 그룹의 컨슈머들이 레코드를 병렬로 처리 할 수 있도록 매칭된다.

  • 파티션은 큐(queue)와 비슷한 구조이지만, 데이터를 가져가도(pop) 삭제되지 않는다.

토픽 이름 제약 조건

  • 빈 문자열은 지원하지 않는다.

  • 마침표 하나(.) 또는 마침표 둘(..)로 생성될 수 없다.

  • 길이는 249자 미만. Kafka 0.10에서 maxNameLength가 255에서 249로 변경

  • 영어 대소문자, 숫자, 마침표(.), 언더바(_), 하이픈(-) 조합으로 생성 가능.

  • 카프카 내부 로직 관리 목적으로 사용되는 2개 토픽(__consumer_offsets, __transaction_state)과 동일한 이름으로 생성 불가.

  • 카프카 내부적으로 사용하는 로직 때문에 이름에 마침표와 언더바가 동시에 들어가면 안된다.

    (생성은 가능하지만 이슈발생을 유발. 사용 시 warning 메시지 발생)

  • 이미 생성된 이름의 마침표를 언더바로 바꾸거나 언더바를 마침표로 바꾼 경우 신규 토픽 이름과 동일하다면 생성 할 수 없다.

    ex) to.pic 의 토픽이 있는 경우, to_pic 생성 불가.

토픽 작명 템플릿과 예시

  • <환경>.<팀명>.<애플리케이션-명>.<메시지-타입>

    ex) prd.marketing-team.sms-platform.json

  • <프로젝트-명>.<서비스-명>.<환경>.<이벤트-명>

    ex) commerce.payment.prd.notification

  • <환경>.<서비스-명>.<JIRA-번호>.<메시지-타입>

    ex) dev.email-sender.jira-1234.email-vo-custom

  • <카프카-클러스터-명>.<환경>.<서비스-명>.<메시지-타입>

    ex) aws-kafka.live.marketing-platform.json

Last updated