kafka
7 posts
도대체 카프카 커넥트란?

kafka connect란? Confluent 카프카 설명 인용 링크 Kafka Connect Kafka Connect는 Apache Kafka와 다른 데이터 시스템간에 데이터를 확장 가능하고 안정적으로 스트리밍하기위한 도구입니다. 대규모 데이터 세트를 Kafka 안팎으로 이동하는 커넥터를 간단하게 정의 할 수 있습니다. Kafka Connect는 전체 데이터베이스를 수집하거나 모든 애플리케이션 서버의 메트릭을 Kafka 토픽으로 수집하여 짧은 대기 시간으로 스트림 처리에 데이터를 사용할 수 있습니다. 내보내기 커넥터는 Kafka 주제의 데이터를 Elasticsearch와 같은 보조 인덱스 또는 오프라인 분석을 위해 Hadoop과 같은 배치 시스템으로 전달할 수 있습니다. Kafka Connect 및 Kafka 커넥터의 기초 인용 Kafka Connect는 커넥터를 사용하여 데이터베이스, 키-값 저장소, 검색 색인 및 파일 시스템과 같은 외부 시스템 과 Kafka를 연결하기위한 프…

March 13, 2022
kafka
kafka 와 debezium 살펴보기

개발 하던중 이벤트 발생 서버와 처리하는 서버가 다를 경우 이벤트 전달에 대해서 고민을 한적이 있습니다. 그때에, “마이크로서비스 이렇게 한다”책을 보게 되었는데 책에서 라는 기술이 있다는것을 알게 되었습니다. 이후 기술에 대해 관심을 가지게 되었고, 를 활용한다면 서버간의 유연함을 유지하면서 이벤트 기반 아키텍쳐를 구현 할 수 있을것 같았습니다. 이번 글에서는 Kafka와 CDC 를 위한 분산 플랫폼 Debezium 의 세팅하고 기본 사용하는 부분에 대해서 알아보겠습니다. 카프카란? Kafka는 실시간 이벤트 기반 애플리케이션 개발을 가능하게하는 오픈 소스 분산 스트리밍 플랫폼이다. debezium 이란? Debezium 이란 CDC 를 위한 오픈 소스 분산 플랫폼입니다. 데이터베이스 커밋으로 발생하는 삽입,업데이트,삭제를 감지하고 인벤트를 발생 시킵니다. Apache Kafka 를 기반으로 구축 되었습니다. CDC 란? CDC 는 Change Data Capture 의 약자입니…

January 11, 2022
kafka
Kafka connect File Source 알아보기 & 실행

Kafka Connect를 활용하여 File Source 해보기 kafka, zookeeper가 실행되어있어야 합니다.(카프가가 없으시다면 공식 홈페이지에서 다운로드) (처음 이시라면 참고) kafka/config 폴더를 열어보면 아래의 파일들이 존재합니다. connect-file-sink.properties connect-standalone.properties 위 파일들을 확용하여 File을 감시해보겠습니다. config/connect-file-source.properties 위 설정 파일은, connect 이름 / connect 라이브러리(connect class) / Source Topic 이름 등등을 설정 할수 있습니다. config/connect-standalone.properties 카프카 서버 주소 설정 / Source key, value 타입 지정 / 감시할 파일 이름 등등을 설정 할 수 있습니다. 실행 해보기 기본 설정 파일에 대해 알아보았고 실행 예제를 알아보겠…

March 14, 2021
kafka
도대체 카프카 컨슈머 그룹(consumer group)?

컨슈머 그룹? 지난번 카프카 파티션(링크) 에 대해서 알아 보았습니다. 파티션을 만듬으로인해 Producer가 대량으로 토픽을 전송 하였을때, 토픽을 저장 할 때 병목현상을 해결 할 수 있는 이점을 알 수있었습니다. 그렇다면, 받는입장(Consumer)에서는 어떨까요? 시나리오 이벤트 발생(Producer)이 10대의 서버에서 발생 Consumer 1대 위 와 같은 상황이라면, 이벤트를 처리하는(consumer) 속도보다 이벤트를 쌓는(producer)가 더 많을 것으로 예상됩니다. 그렇다면, 컨슈머 또한 늘려서 해소해야 될것같습니다. consumer group을 활용하여 이벤트를 분산 수행 하는것에 대해알아 보겠습니다. 의문, 컨슈머를 여러대 만들면 되는거 아닌가? 네, 만약 컨슈머 그룹이 아닌 컨슈머를 여러대 만든다면 여려대의 컨슈머가 모두 같은 메세지를 받습니다. 3개의 작업이 대기중일때 3대의 컨슈머가 있다면 3대 모두 3개의 작업을 진행 할 것입니다.(중복 작업) 컨슈머 …

December 22, 2020
kafka
도대체 카프카 토픽 파티션?

카프카 파티션? 카프카는 초당 수백만개의 메시지를 전송하고 처리를 제공하는 분산 스트리밍 플랫폼입니다. 처리성능을 높이기 위해 토픽 저장을 병렬화 할 수 있습니다. 그러한 방법은 브로커에 파티션을 나누는 것입니다. 하지만, 파티션은 늘리는것은 가능하지만 줄이는 것은 안되기 때문에 주의 해야합니다. 파티션 줄이고 싶다면 토픽을 삭제밖에 방법이 없습니다. ex) 1개의 파티션이 1분에 10개의 메시지를 받을 수 경우를 가정해보겠습니다. 프로듀서에서 1분에 50개의 메세지를 보낸다면, 토픽의 파티션을 5개로 늘려 처리 성능을 높여서 병목현상을 막을수 있을것입니다. 커맨드로 따라 해보기 마무리 토픽에 파티션을 추가하여 토픽을 생성해보았습니다. 토픽 전송 후 파티션을 확인하였을때 분산되어 저장되는것을 확인 할 수 있었습니다. 토픽을 가져올때는 순서대로 가져오지 않는다는걸 확인 하였습니다.

December 21, 2020
kafka
도대체 카프카 Producer와 Concumer?

1. 카프로 빠르게 시작해보기 카프카 다운로드 압축해제 $ tar -xzf kafka_2.13-2.7.0.tgz 주키퍼 실행 $ bin/zookeeper-server-start.sh config/zookeeper.properties 카프카 실행 $ bin/kafka-server-start.sh config/server.properties 여기까지 하시면 기본적인 카프카 프로세스는 준비가 되었습니다. 토픽 생성하기 $ bin/kafka-topics.sh —create —topic quickstart-events —bootstrap-server localhost:9092 생성된 토픽 확인하기 $ bin/kafka-topics.sh —describe —topic quickstart-events —bootstrap-server localhost:9092 Producer 실행하고, 토픽내용 전송하기 Consumer로 토픽 읽기 예제 구성도 여기까지 가장 기본적인 카프카로 토픽 생성하여 …

December 15, 2020
kafka
도대체 카프카란?

카프카를 알게 된 계기 서비스를 분산화 하고, 여러 도메인 서비스에서 발생하는 이벤트를 받아 분산처리를 할 수 있는 아키텍처를 찾고 있었습니다. 그럴러면, 마이크로 서비스들이 서로 서로 이벤트를 받아야 하는데, 이러한 아키텍처를 구현 할 수 있는 쉽고 강력한 도구가 없을까? 라는 생각을 하게 되었습니다. 그러던중, 카프카라는 강력한 플랫폼을 알게 되었고 알면알수록 매력적으로 다가왔습니다. 위키백과가 말해주는 카프카란? 아파치 카프카는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다. 개발된곳은 링크드인이고, 2011년초 최종적으로 오픈소스화 되었다. 카프카를 사용하는 기업 애플,카카오 (기업),이베이,넷플릭스,페이팔,Uber,월마트 (알만한 기업들은 모두 사용!) Confluent가 말하는 카프카란? (Confluent는 링…

December 15, 2020
kafka