본문으로 바로가기

Topicctl (Kafka management)

category software engineering/backend 2022. 8. 25. 12:31
728x90

나는 Kafka를 처음 써봤고 모든 회사 사람들이 Kafka에 대한 지식의 정도가 달라서 사용해본

A tool for easy, declarative management of Kafka topics 를 위한 툴

 

{{env}}/topics/{{topic}}.yaml

meta:
  name: {{topic}}
  cluster: {{cluster}}
  environment: {{env}}
  region: ap-southeast-1
  description: |
    {{desc}}
spec:
  partitions: 1
  replicationFactor: 1
  placement:
    strategy: any

{{env}}/cluster.yaml

meta:
  name: {{name}}
  environment: {{env}}
  region: ap-southeast-1
  description: |
	{{desc}}
spec:
  bootstrapAddrs:
    - {{addr}}:9092

원하는 식으로 적어주고 merge 하면 history도 남고 자동으로 배포해주기 때문에 좋다.

 

중간에 partition과 replicationFactor가 배수여야하는데 잘못한 경우에도 좋고, 해당 topicctl을 이용하지 않고 kafka ui나 zookeeper를 사용해서 기존에 사용하던 방식으로 config를 변경하는 경우에도 다음에 topicctl을 업데이트 하는 경우에 불일치 문제가 있어서 topic을 apply할 수 없던 문제가 있었다.

 

추후에 check command를 action workflow에 추가시켰는데 없는 토픽을 생성하는 경우나 원하지 않는 경우에도 error로 판단해서 결국 fork해서 수정한 후 topicctl을 docker에서 받아오지 않고 fork된 directory에서 수정한 파일의 binary을 이용해서 원하는 형태로 만들어서 사용했다.

 

아직도 이게 변경하면 변경된 내용으로 apply가 되지 않는다거나 몇가지 문제가 있었지만 시간상 여기까지만 만족하기로 했다.

'software engineering > backend' 카테고리의 다른 글

gRPC Error  (0) 2022.08.26
go-pprof  (0) 2022.08.25
gRPC  (0) 2022.08.25
Error  (0) 2022.08.25
Slow Query (feat. index)  (0) 2022.08.25