Kafka(16)
-
Kafka - 신뢰성 있는 카프카 애플리케이션을 만드는 3가지 방법(멱등성 프로듀서, 트랜잭션 컨슈머, 컨슈머 중복 적재)
1. 멱등성 프로듀서1.1. 중복 데이터 produce 문제 상황만약 네트워크에 이슈가 생겨서, Acknowledge 전송이 실패되면 중복으로 데이터를 produce할 수 있다.1.2. 멱등성 프로듀서 사용PID(Producer unique ID)를 같이 보내서 브로커에 메시지가 저장되어있음을 같이 저장해서 중복 메시지가 발행되면 토픽에 개시하지 않음. 아래는 실제 3.0 이상의 카프카 프로듀서 팩토리 코드인데, 디폴트로 true로 설정된 코드. 2. 트랜잭션 컨슈머 + 프로듀서컨슈머와 프로듀서를 하나의 트랜잭션으로 묶어서 처리하는 방식임. 특이하게 커밋을 Producer가 한다. 트랜잭션 컨슈머 + 프로듀서 구성으로 되어있고 그 프로듀서가 발행한 이벤트를 consume하는 컨슈머는 반드시isolati..
2024.06.18 -
Spring kafka + micrometer tracing
build.gradleimport org.jetbrains.kotlin.gradle.tasks.KotlinCompileplugins { id("org.springframework.boot") version "3.2.5" id("io.spring.dependency-management") version "1.1.4" kotlin("jvm") version "1.9.23" kotlin("plugin.spring") version "1.9.23"}group = "com.spring"version = "0.0.1-SNAPSHOT"val jvmVersion = JavaVersion.VERSION_17java { sourceCompatibility = jvmVersion}repositor..
2024.05.14 -
Spring cloud stream kafka - concurrency
spring.cloud.stream.bindings..consumer.concurrency 옵션과 관련해 설명한다. 아래 상황이 있다고 가정하자. 토픽 이름 : A-topic 파티션 개수 : 4 앱 인스턴스 개수 : 1(concurrency == 2) 보통은 위와 같이 설정을 하게 되면, 당연히 하나의 앱에서 2개는 동시 처리 하겠구나 생각을 하기 마련이지만 실제로는 그렇게 동작하지 않을 수 있다. 아래와 같이 컨슈머 그룹이 구성 되어 있다고 생각해보자 ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group a-topic-group --describe GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFF..
2022.07.27 -
Kubernetes - 쿠버네티스 클러스터 로깅(logging, fluentd + kafka + elk)
이번 포스팅에서는 쿠버네티스 로깅 파이프라인 구성에 대해 다루어볼 것이다. 저번 포스팅에서는 Fluentd + ES + Kibana 조합으로 클러스터 로깅 시스템을 구성했었는데, 이번 시간에는 Fluentd + kafka + ELK 조합으로 구성해본다. Kubernetes - Kubernetes 로깅 운영(logging), Fluentd 오늘 다루어볼 내용은 쿠버네티스 환경에서의 로깅운영 방법이다. 지금까지는 쿠버네티스에 어떻게 팟을 띄우는지에 대해 집중했다면 오늘 포스팅 내용은 운영단계의 내용이 될 것 같다. 사실 coding-start.tistory.com 중간에 카프카를 두는 이유는 여러가지가 있을 수 있을 것 같다. 첫번째 버퍼역할을 하기때문에 어느정도 파이프라인의 속도 조절이 가능하다. 두번째 ..
2020.08.24 -
Docker - 도커를 이용해 Single node Kafka 띄우기
이번 포스팅은 간단하게 싱글 노드 카프카를 도커로 띄우는 방법이다. git clone https://github.com/wurstmeister/kafka-docker cd kafka-docker 설정 파일은 docker-compoese로 되어있으며, 아래와 같다. version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: build: . ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volum..
2020.06.04 -
Apache Kafka - Kafka Producer(카프카 프로듀서) - 2
2019/07/06 - [Kafka&RabbitMQ] - Apache Kafka - Kafka(카프카)란 ? 분산 메시징 플랫폼 - 1 Apache Kafka - Kafka(카프카)란 ? 분산 메시징 플랫폼 - 1 이전 포스팅들에서 이미 카프카란 무엇이고, 카프카 프로듀서부터 컨슈머, 스트리밍까지 다루어보았다. 하지만 이번 포스팅을 시작으로 조금더 내용을 다듬고 정리된 상태의 풀세트의 카프카 포스팅을 시작할 것.. coding-start.tistory.com 이전 포스팅에서 간단히 카프카란 무엇이며 카프카의 요소들에 대해 다루어보았다. 이번 포스팅에는 이전에 소개했던 요소중 카프카 프로듀서에 대해 다루어볼 것이다. 카프카 프로듀서란 카프카 클러스터에 대해 데이터를 pub, 기록하는 애플리케이션이다. 카프..
2019.07.06