Kafka 토픽 이름

less than 1 minute read

  1. 토픽 이름 제약 조건
    1. 빈문자열 X
    2. 마침표 1개(.) 또는 마침표 2개(..)로 생성 X
    3. 249자 이상 X
    4. 사용 가능 문자 (이외 문자 X)
      1. 영어 대소문자
      2. 숫자 0~9
      3. 마침표(.)
      4. 언더스코어(_)
      5. 하이픈(-)
    5. 카프카 내부 로직 관리 목적으로 사용되는 2개 토픽과 동일한 이름 X
      1. __consumer_offsets
      2. __transaction_state
    6. 카프카 내부적으로 사용하는 로직 때문에 마침표(.)와 언더스코어(_)가 동시에 들어가면 안된다. 생성은 할 수 있지만 사용시 이슈가 발생할 수 있기 때문에 waring 메세지가 발생한다.
    7. 영어 대소문자 + 숫자 + 마침표(.) + 하이픈(-) 조합 사용을 추천
  2. 의미 있는 토픽 이름 작명 방법
    1. 토픽 이름은 데이터의 얼굴이기 때문에 모호하게 작성하게 되면 유지보수 시 큰 어려움을 겪을 수 있다. ex) ‘test.20220101’, ‘abcd’ 등..
    2. 중요한 것은 토픽 이름에 대한 규칙을 사전에 정의하고 구성원들이 그 규칙을 잘 따라야한다. 그렇지 않으면 기술 부채로 남아 카프카 운영에 어려움이 발생할 수 있다.
    3. 카프카는 토픽 이름 변경을 지원하지 않으므로 이름을 변경하기 위해서는 삭제 후 다시 생성하는 것 외에는 방법이 없다.
    4. 규칙을 따르지 않은 토픽의 이름의 경우 주기적으로 확인하고 검토하여 사용 여부를 판단해야한다.
      1. 만일 단발성으로 생성된 토픽이라면 삭제처리하고,
      2. 실제로 사용을 위한 토픽이라면 삭제 후 신규로 토픽을 만드는 것을 권장한다.(마이그레이션..)
  3. 토픽 작명의 템플릿과 예시
    1. <환경>.<팀-명>.<애플리케이션-명>.<메세지-타입> ex) prd.marketing-team.sms-platform.json
    2. <프로젝트-명>.<서비스-명>.<환경>.<이벤트-명> ex) commerce.payment.prod.notification
    3. <환경>.<서비스-명>..<메세지-타입> ex) dev.email-sender.jira-902.email-vo-custom
    4. <카프카-클러스터-명>.<환경>.<서비스-명>.<메세지-타입> ex) aws-kafka.live.marketing-platform.json
-->

Categories:

Updated:

Comments