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