토픽 이름은 영대소문자와 언더바, 대시, 마침표로 구성할 수 있는데
이외에 브로커의 버전에 따라 불가능한 이름이 있을 수 있습니다. (마침표 하나, 마침표 2개 등..)
때문에 제약사항을 정확히 알고 싶다면 깃허브에 올라가있는 아파치 카프카 오픈소스를 받아서, 토픽 생성 관련 코드를 확인해보는 것이 좋습니다.
[토픽 이름을 어떻게 지정해야 할까?]
1) 어떤 개발환경이고, 어떤 데이터 타입이 사용되는지 유추 가능한 토픽 이름이 좋습니다.
토픽에 넣을 수 있는 데이터는 직렬화되어 들어갑니다. 즉, 들어갈 수 있는 데이터 타입이 무한하다고 볼 수 있습니다.
토픽에 들어가는 데이터가 JSON인지 POJO인지에 따라 컨슈머에서 어떻게 역직렬화해서 데이터를 읽을지 정해야 하기 때문에, 토픽에 들어가는 데이터 타입을 명확히 표시하기 위해 토픽 이름에 데이터 타입이 들어가는 것이 좋은 방법일 수 있습니다.
2) 만약 회사에서 공용 카프카 클러스터를 사용한다면, 여러 팀이 동시에 토픽을 만들고 사용할 수 있습니다.
이런 경우에 특정 토픽이 어느 서비스에서, 어떤 팀에서 사용되는 것인지 파악이 힘들 수 있는데
그런 경우에는 토픽의 오너십(ownership)을 가진 이름을 토픽 이름에 추가하는 것도 고려할 수 있습니다.
3) 카프카 클러스터를 2개 이상 운영(개발 환경, 상용 환경)하는 경우 굳이 동일한 이름의 토픽 이름을 만들기보단, 클러스터의 환경에 따라 토픽 이름을 다르게 넣어서 토픽이 위치한 환경을 명확히 파악하는 것이 좋습니다.
[좋은 토픽 이름을 짓는 방법]
1) 대소문자를 섞어 쓰지 않는 것이 좋습니다.
. 휴먼 에러로 실수할 가능성이 높음
. kafka-console-consumer, kafka-console-producer로 테스트를 위해 cli를 작성할 때 번거로움
2) 마침표(.)와 언더바(_)를 섞어 쓰지 않는 것이 좋습니다.
. 마침표와 언더바를 섞어쓰면 카프카에서 사용하는 메트릭 이름과 충돌이 일어날 수 있음
3) 카프카 클러스터 운영자는 규칙을 정하고 전파하는 것이 좋습니다.
** 좋은 토픽 이름 예시
. advertise-sender-notification-prod
. android-application-sms-prod
. data-jira1234-dev
'~2022 > Apache Kafka' 카테고리의 다른 글
[Apache Kafka] 6. 카프카 클러스터 (0) | 2021.11.11 |
---|---|
[Apache Kafka] 5. 카프카 브로커 (0) | 2021.11.11 |
[Apache Kafka] 3. 레코드, 파티션, 토픽 (0) | 2021.11.11 |
[Apache Kafka] 2. 카프카의 특징, 장점(데이터 파이프라인에 적합한 이유) (0) | 2021.10.28 |
[Apache Kafka] 1. 카프카의 탄생 (0) | 2021.10.28 |