일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bean
- API
- consumer
- centos7
- Streams
- entity graph
- CodePipeline
- offsetdatetime
- Spring JPA
- Kubernetes
- transactionaleventlistener
- topic생성
- git
- CI
- spring kafka
- JPA
- Entity
- AWS
- QueryDSL
- mysql
- PAGING
- ECS
- cd
- Spring Data JPA
- spring
- kafka
- mirror maker2
- Kotlin
- producer
- K8s
- Today
- Total
목록kafka (10)
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'를 통해 토픽 관련 명령을 실행할 수 있다. '--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가지가 있다...

컨슈머 컨슈머는 카프카에 적재된 데이터를 처리한다. 컨슈머의 고급 활용법과 옵션별 동작 방식을 알아보자 멀티 스레드 컨슈머 파티션을 여러 개 운영하는 경우 파티션의 개수와 컨슈머 개수를 동일하게 하는 것이 가장 좋다. 그렇다면 ‘1개의 프로세스 + N개의 스레드’ OR ‘N개의 프로세스 + 각 1개의 스레드’ 무엇이 더 좋을까? -> 개발자 선택에 달렸다. 운영하는 환경을 잘 파악하고 선택하자. 멀티 스레드로 운영할 경우 하나의 스레드에서 예외가 발생하여 프로세스 자체가 종료되면 다른 스레드까지 영향을 미치기 때문에 중복, 유실 등의 문제가 발생할 수 있다. + 스레드 세이프 로직, 변수를 적용을 고려해야 한다. 멀티 스레드 운영방식은 두 가지로 나뉜다. 하나의 컨슈머 스레드, 데이터 처리를 담당하는 여..