이번 포스트에서는 Spring Boot를 이용해 간단하게 Kafka producer와 Kafka Consumer를 이용할 수 있는 kafka application을 개발해 보겠습니다. 기본 개발 환경 1. 의존성 & 패키지 추가 Kafka Producer & Consumer를 구현하기 위해서는 아파치 카프카 라이브러리를 프로젝트에 추가해야 합니다. 아파치 카프카 라이브러리는 mvnrepository 접속하시면 spring-kafka로 바로 접속 가능하십니다. 저 같은 경우는 2.8.0 버전의 spring-kafka 라이브러리를 이용하겠습니다. 만들 클래스는 Controller, Producer, Consumer 이 3가지이기 때문에 분리하기 위한 패키지 구조는 아래와 같이 잡아보았습니다. 2. yml 파..
이번 포스트에서는 명령어를 통해 토픽을 생성, 수정하여 데이터를 전송(Producer)하고 받을 수(Consumer) 있는 명령어들을 살펴보겠습니다. 카프카의 명령어들은 관련 애플리케이션을 개발하고 클러스터를 운영할 때 자주 쓰이기 때문에 명령어를 손에 익혀두면 좋을것입니다. 1. Kafka-topics.sh Topic과 관련된 명령어를 실행합니다. Tip! 토픽을 생성하는 2가지 방법 1) Kafka Consumer 또는 Kafka Producer가 Kafka Broker에 생성되지 않은 토픽에 대해 데이터를 요청할 경우 2) 커맨드 라인 툴로 명시적으로 토픽을 생성하는 경우 토픽을 효과적으로 유지보수 하기 위해서는 2번 방법을 추천 -> 토픽마다 처리되어야 하는 데이터의 특성이 다르기 때문에 1) 토..
이번 글에서는 로컬에서 Docker를 이용해 Kafka 서버를 구축해보겠습니다. 1. Docker Image 다운받기 Cli 환경에서 docker search를 하거나 Docker Hub을 통해서 직접 kafka Image를 찾아볼 수 있는데 wurstmeister/kafka가 가장 별을 많이 받아있네요. 해당 이미지로 Docker Image를 받아보겠습니다. 2. Pre-Requisites Docker Hub에서 해당 이미지(wurstmeister/kafka)에 접속해보시면 사전 준비가 필요하다고 작성되어있습니다. Kafka를 실행하기 위해서는 항상 Zookeeper가 띄어져 있는 상태여야 합니다. 그렇기 때문에 docker-compose.yml 파일을 하나 만들어서 한 번에 실행시키는 방법을 추천드립..
1. Kafka? 대용량, 대규모 메시지 데이터를 빠르게 처리하도록 개발된 메시징 플랫폼 Source Application -> Kafka로 데이터를 전송 (데이터 포맷 제한이 없음) Kafka -> arget Application로 데이터를 가져옴 목적 : Source Application 과 Target Application의 결합도를 낮추기 위함 확장성과 고가용성을 위해 설계 Producer와 Consumer는 라이브러리로 되어있어서 Application으로 구현 가능 2. Topic 데이터가 들어갈 수 있는 공간 하나의 토픽은 여러개의 파티션으로 구분 가능 1) 파티션이 한 개인 경우 2) 파티션이 여러개인 경우 (1) 키가 Null이고 기본 파티셔너 사용할 경우 -> 라운드 로빈(Round ro..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.