Kafka
-
Kafka streams로 kafka 내부 데이터 처리Kafka 2022. 1. 13. 14:16
Kafka streams Kafka Streams는 Stream API로 구축된 애플리케이션이고, 브로커와 별도로 구성된다. //Stream API : 컬렉션, 배열등의 저장 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 적용하며 반복적으로 처리할 수 있도록 해주는 기능 kafka 내부에서 메시지 파이프라인을 구성한다고 생각할 수 있다. 따라서 브로커의 특정 토픽을 구독하여 일련의 로직을 처리한 뒤에, 다시 다른 토픽으로 publish한다. 쉽게 말하면 kafka내부에 있는 데이터에 가공처리한 후 다시 다른 토픽이나 같은 토픽으로 넣어주는 역할을 한다. Kafka streams는 라이브러리로 제공되기 때문에 단순히 main 함수 내에서도 구현이 가능하고, 특정한 프레임워크에 종속되지 않을 수 있다...
-
Kafka connect로 kafka와 여러 서비스 연결하기Kafka 2022. 1. 12. 12:30
Kafka connect??? kafka connect는 kafka와 다른 데이터 시스템 사이에 데이터를 스트리밍해주는 오픈소스 툴이다. kafka connect는 쉽고 간단하게 메시지 파이프를 구성하도록 도와준다. 데이터베이스 전체를 읽을 수 있고, metrics 정보도 모을 수 있다. kafka connect 구성 connector connect 내부의 실제 메시지 파이프라인 connect에 connector를 구성할 땐 connect에 connector 관련 설정을 전달하면 됨 구성된 connector는 주기적으로 메시지를 확인하고, 새로운 메시지가 있으면 파이프라인을 통해 흘려 보낸다. Source connector 외부 애플리케이션에서 kafka로 데이터를 가져오는 역할 외부 애플리케이션 -> ..
-
Kubernetes 위에 kafka 구축 - strimziKafka 2022. 1. 11. 10:32
Kafka를 수동으로 운영하려면 수많은 구성 요소를 꼼꼼히 설정해야 하므로 일이 매우 복잡해진다. Strimzi에서 제공하는 오퍼레이터를 사용하여 Apache Kafka 설정을 순조롭게 원활히 배포한다. strimzi github page https://github.com/strimzi/strimzi-kafka-operator GitHub - strimzi/strimzi-kafka-operator: Apache Kafka running on Kubernetes Apache Kafka running on Kubernetes. Contribute to strimzi/strimzi-kafka-operator development by creating an account on GitHub. github.com ..
-
Kafka 튜닝, 최적화 방안Kafka 2022. 1. 10. 11:07
**이 글은 kafka3 이전 버전 기준으로 쓰여졌음을 알립니다 성능목표 이해 Kakfa는 사용하려는 서비스 목적에 따라 성능 목표를 크게 Throughput, Latency, Durability, Availability 네가지로 분류할 수 있습니다. 각 목표는 상호 trade-off 관계로 모든 목표를 동시에 모두 최적화할 수 없다. · Thoughput: kafka 특성상 많은 데이터를 빠르게 쓰는 것은 문제가 없음 · Latency: 하나의 메시지를 가능한 빠르게 전달 (producer -> broker -> consumer) · Durability: 메시지의 유실을 최소화, 이벤트 기반 마이크로서비스 또는 데이터 수집 파이프라인 · Availability: kafka 서버의 다운타임 최소화, 장애..
-
Kafka docker-compose로 구축Kafka 2021. 9. 17. 16:28
단일 kafka, docker-compose로 구축 Kafka를 로컬 환경에서 테스트하기 위해 docker-compose위에 올릴 수 있다. docker-compose: yaml파일을 통해 여러 container를 하나로 묶어서 한번에 docker환경에 올리는 방식이다. 서로 관련이 있는 service를 한번에 올릴때 편리하다. docker-compose를 위한 yml file을 작성해보자. version: '2.1' services: #생성할 서비스 목록 zookeeper: hostname: lonezk image: zookeeper:3.4.9 #image file, 없으면 hub에서 자동으로 가져옴. ports: - "2184:2184" environment: #환경 변수 설정 ZOO_MY_ID: 4..
-
Apache Kafka란 - 이론 공부 내용Kafka 2021. 9. 12. 00:02
카프카의 등장배경 아파치 카프카(Apache Kafka)는 미국의 대표적인 비즈니스 인맥 소셜네트워크 링크드인(LinkedIn)에서 처음 개발된 분산 메시징 시스템이다. 현재 데이터 파이프라인을 구축할 때 가장 많이 고려되는 시스템 중 하나이다. (Data Pipeline-데이터를 생성해서 무사히 저장하기까지 일련의 과정을 데이터 파이프라인이라고 한다) kafka는 비즈니스 특화 서비스인 링크드인에서 처음 출발했고, 링크드인 사이트가 급속도로 성장하면서 발생하는 내부 여러 이슈들을 해결하기 위해 탄생하였다. 위의 아키텍처처럼 링크드인의 엔드 투 엔드(End to End) 연결 방식의 아키텍처는 많은 문제점이 있었다. 첫 번째로는 실시간 트랜잭션(OLTP) 처리와 비동기 처리가 동시에 이뤄지지만 통합된 전..