카프카 4

kafka - Debezium kafka Connector K8s에 설치 및 확인

오늘은 Kafka Connector 중 하나인 Debezium Kafka Connector를 한번 설치해보고 어디에다 써먹는지 알아보겠습니다. 우선 Kafka Connector는 크게 두종류로 나눕니다. 1. Kafka Source Connector Source 즉 원본 데이터가 있을때 해당 데이터를 kafka로 전송해 주는 역할을 합니다. ex) DB Souce Connector : DB의 변경사항을 Catch 하여 Kafka로 변경사항을 Message로 전송합니다. 2. Kafka Sync Connector Kafka에 있는 데이터를 어딘가에 전송하거나 실시간으로 가공하여 전송하는 기능을 합니다. ex) S3 Sync Connector : Kafka의 특정 Topic을 구독하여 메세지를 micro B..

kafka 2023.05.27

Kafka - UI (UI for Apache Kafka) K8s에 설치

우리가 Kafka를 사용할 때 CLI를 사용해서 Topic을 컨트롤 하거나 아니면 상태를 보거나 하는일을 하게되는데 이게 생각보다 많이 불편함을 느낄 수 있습니다. 회사에서 운영하고 있는 카프카 클러스터를 관리하는데 많이 유용하게 사용되고 있어서 한번 소개 해 봅니다. 우선 우리 회사는 kafka를 k8s위에서 관리하고 있고, 그렇기 때문에 이번에 Kafka UI를 올리는 과정을 소개함에 있어서 Yaml파일을 작성할겁니다. 준비물이 있습니다. 1. 운영중 혹은 개발용인 카프카가 있어야 합니다. 2. K8s가 있어야 합니다. 3. 개발 환경에 kubectl과 같은 k8s CLI Tool이 있어야 합니다. 첫번째 Kafka UI는 어떤걸 사용하는가 이 툴에 대해서 다른 툴과 비교한 내용이 있는데 참고 해보기..

kafka 2023.05.25

kafka - Topic Partition 개수 설계

카프카에 파티션 수가 늘어날 수록 처리량을 올라가지만, 그에 따른 반작용이 있다. 바로 Latency 증가하고 recovery time 이 늘어난다. 그래서 무작정 파티션 수를 늘리는 것보다, 적절한 목표 처리량을 설정하고 그에 맞춰 파티션 개수를 산정해야한다. 이어 기능상에 대해서도 고려를 해야한다. 카프카 파티션 수 설계 가이드 파티션 수를 증가하면 처리량이 높아짐 (분산효과) 프로듀서, 브로커 : write 처리량이 증가, hardware 자원 사용 증가 컨슈머 : 파티션 수만큼 병렬 쓰레드 구동해서 처리량 증가 목표 처리량 (t) 이 있다면, 파티션 개수를 정할 수 있음 단일 파티션 쓰기 속도 계산 (p) 단일 파티션 읽기 속도 계산 (c) 파티션 개수 = max (t/p, t/c) 고려사항 ba..

kafka 2021.07.21

Python - Kafka Producer 구성

kafka에 message를 보내기 위해서 파이썬으로 프로듀서를 구성해보았다. 우선먼저 필요사항 Python kafka-python 그리하여 먼저 Kafak-python 라이브러리를 설치한다. !pip install kafka-python 아주 가뿐하게 설치를 하고 나면 이제야 비로서 코드를 한번 알아보도록 하자. from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') for _ in range(100): producer.send('foobar', b'some_message_bytes') 세상 너무 간단하다.. 정말 이것으로 우리가 원하는 메세지를 생성할 수 있나? 실제로 가능하지만.. 너무 기..

Python 2021.07.21