일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- consumer
- mirror maker2
- AWS
- offsetdatetime
- git
- centos7
- kafka
- PAGING
- spring
- Streams
- ECS
- CI
- JPA
- Kubernetes
- entity graph
- producer
- Entity
- spring kafka
- QueryDSL
- topic생성
- bean
- mysql
- Kotlin
- CodePipeline
- cd
- Spring Data JPA
- transactionaleventlistener
- K8s
- API
- Spring JPA
- Today
- Total
목록Kafka (14)
Yebali

카프카 스트림즈는 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리이다. '정확히 한번 전달', '장애 허용 시스템'등 데이터 처리 안정성이 매우 뛰어나 카프카 클러스터를 운영하면서 실시간 스트림 처리를 해야 한다면 카프카 스트림즈를 1순위로 고려하는 것을 권장하고 있다. 예제에서 만들어볼 카프카 스트림즈는 0~9 사이의 임의의 숫자들이 적재된 'random.number' 토픽으로부터 메시지를 읽어 5보다 큰 숫자들만 'over5.number' 토픽에 적재하는 기능을 하는 스트림즈 애플리케이션이다. 토픽 생성하기 bin/kafka-topics.sh \ --create \ --bootstrap-server 13.124.252.159:9092 \ --partitions 3 \ --t..

카프카를 실습하기 위한 간단한 프로듀서와 컨슈머를 만들어서 실험해보자. 토픽 만들기 3개의 파티션을 가진 'test'라는 이름의 토픽을 생성한다. bin/kafka-topics.sh \ --create \ --bootstrap-server 13.124.252.159:9092 \ --partitions 3 \ --topic test 프로듀서 Kotlin프로젝트를 새로 만들어 아래 의존성을 추가해준다. dependencies { implementation("org.apache.kafka:kafka-clients:2.8.1") implementation("org.slf4j:slf4j-simple:1.7.35") testImplementation(kotlin("test")) } "testMessage"라는 메시..

카프카의 토픽을 삭제하는 것은 주키퍼에 있는 해당 토픽의 파일, 디렉토리를 삭제하는 것을 말한다. 일반적으로 알려진 토픽 삭제 방법인 kafka-topics.sh을 이용해서 토픽을 삭제하면 'already marked for deletion'이라는 메시지만 나타나고 정상적으로 삭제가 안 된다. 이 경우 다시 토픽을 생성할 수도 없으며 해당 토픽으로 들어온 메시지도 처리가 안 된다. 사전작업 카프카 설정 파일인 'config/server.properties'에 'delete.topic.enable=true' 설정을 추가한다. 해당 설정을 추가하고 카프카를 재시작 해준다. bin/kafka-server-stop.sh # 카프카 중단 bin/kafka-server-start.sh -daemon config/s..

카프카에서 토픽을 생성하는 방법은 두 가지가 있다. 첫 번째는 카프카 컨슈머/프로듀서가 브로커에 생성되지 않은 토픽에 대해 데이터를 요청할 때 생성된다. 두 번째는 커맨드 라인 툴로 명시적으로 토픽을 생성하는 것이다. 토픽을 효과적으로 유지보수하기 위해서는 토픽을 명시적으로 생성하는 것이 좋다. 토픽 생성 'kafka-topics.sh'를 통해 토픽 관련 명령을 실행할 수 있다. '--create'옵션을 사용하여 'hello.kafka'라는 이름을 가진 토픽을 생성할 수 있다. bin/kafka-topics.sh \ --create \ --bootstrap-server 13.124.252.159:9092 \ --topic hello.kafka 클러스터의 정보와 토픽의 이름은 토픽을 만들기 위한 필수 값이..

카프카를 공부하며 실습을 위한 환경을 만들기 위한 작업이다. 카프카와 주키퍼 모두 한 EC2 인스턴스에 설치할 것이다. 사전작업 카프카는 자바 애플리케이션이기 때문에 JDK가 미리 설치되어있어야 한다. EC2에 JDK 11 설치하기 EC2 Linux Java 11 설치하기 EC2 Linux에서 jdk를 설치하려고 하면 1.8까지만 존재하는 것을 확인할 수 있다. Java 11 설치하기 때문에 Java 11을 설치하기 위해서는 yum 설치 외의 다른 방법을 사용해야 한다. 예시에서는 Amazon에서 yebali.tistory.com 설치하기 카프카를 설치하는 방법은 사실 파일을 다운받고, 설정하고, 실행하는 것이 전부이다. 1. 카프카 다운로드 하기 https://kafka.apache.org/downlo..

스프링 카프카 스프링 카프카는 카프카를 스프링 프레임워크에서 효과적으로 사용할 수 있도록 만들어진 라이브러리다. 카프카 클라이언트에서 사용하는 여러 가지 패턴을 미리 제공한다. ex) 컨슈머를 멀티 스레드로 운영하고 싶다면 concurrency 옵션 하나만 추가하면 쉽게 구현할 수 있다. 스프링 카프카 라이브러리는 어드민, 컨슈머, 프로듀서, 스트림즈 기능을 제공한다. 스프링 카프카의 의존성 implementation("org.springframework.kafka:spring-kafka") 스프링 카프카 프로듀서 스프링 카프카 프로듀서는 ‘카프카 템플릿’이라고 불리는 클래스를 사용하여 데이터를 전송할 수 있다. 카프카 템블릿은 ‘프로듀서 팩토리’ 클래스를 통해 생성하며, 사용하는 방법은 2가지가 있다...