전체 글 308

높은 버전의 kafka 라이브러리에서 압축된 메시지를 낮은 버전의 라이브러리에서 consuming할 수 없는 이슈

목차 [개요] 토픽을 구독하려고 했는데 아래같은 오류가 발생한다. 해당 오류가 반복적으로 발생하면서 메시지 처리가 되지 않는다. 해당 토픽은 Spring Kafka 2.6 버전을 사용하는 producer에서 발급되었고, compression.type = zstd을 사용하고 있다. Consumer는 아래 환경에서 동작한다. SpinrgBoot Version: 2.1.6 Spring Kafka Version: 2.2.7 Apache Kafka Client Version: 2.0.1 [문제 현황] consumer-group에는 정상적으로 추가되지만 오류가 발생하면서 메시지를 계속해서 처리하지 못한다. 라이브러리 버전을 올릴 경우 정상적으로 동작한다. [디버깅] Fetcher.java의 fetchRecords ..

Kafka/Spring Kafka 2023.06.20

Tranforms - kryptonite-for-kafka를 사용하여 Field-Level 암복호화 해보기

목차 소개: https://developers.redhat.com/articles/2022/09/27/end-end-field-level-encryption-apache-kafka-connect github: https://github.com/hpgrahsl/kryptonite-for-kafka GitHub - hpgrahsl/kryptonite-for-kafka: Kryptonite for Kafka is a client-side 🔒 field level 🔓 cryptography library for Apa Kryptonite for Kafka is a client-side 🔒 field level 🔓 cryptography library for Apache Kafka® offering a Kafka..

Kafka/Connect 2023.06.09

Spring Kafka - Producer

목차 [개요] 스프링 카프카 프로듀서는 KafkaTemplate 이라는 클래스를 사용한다. KafkaTemplate은 ProducerFactory 클래스를 통해 생성된다. KafkaTemplate을 생성하는 방법은 "기본 템플릿" or "사용자 정의 템플릿"을 ProducerFactory로 생성하는 방법이다. [Basic KafkaTemplate] 기본 카프카 템플릿은 application.yaml에 프로듀서 옵션을 넣기만 하면 옵션이 적용된다. spring: kafka: producer: bootstrap-servers: localhost:9092 acks: all enable.idempotence: true retries: 3 .... 예제 기본 템플릿을 통해 "jaeshim-test"라는 토픽에 메..

Kafka/Spring Kafka 2023.05.29

Topic Naming Convention

목차 [INTRO] 카프카에서의 화두 중 하나는 카프카 토픽의 이름을 어떻게 짓는것이냐이다. 보통 많은 회사들이 기존의 토픽명의 관습에 따라 많이 짓는다고 한다. 아래와 같은 네이밍 규칙이 권장된다. .. -- ... 그리고 chris riccomini는 아래와 같은 네이밍 규칙을 사용하기도 했다고 한다. .. [카프카에서 유효한 토픽명] 카프카에서는 '_', '-', '.' 이며 아래 정규식이 카프카에서 사용할 수 있는 토픽명이다. 하지만 '_','-' 등을 혼용해서 사용할 경우 충돌이 날 수 있기 때문에 혼용하지 않도록 해야한다. legalChars = "[a-zA-Z0-9\\._\\-]" 또한 토픽명은 대소문자를 구분한다. [카프카에서 토픽명을 정할 때 몇가지 지침들] 토픽명의 포맷을 정해라 가장 ..

Kafka/Broker 2023.05.29

Kafka TCP Connection에 대한 정리

목차 [INTRO] 기본적으로 Kafka에서는 active_connection_count라는 메트릭지표로 현재 사용 중인 Connection 수에 대한 지표를 제공한다. 하지만 실제 클라이언트 인스턴스 수 보다 이 값이 높은 경우가 있다고 한다. TCP Connection 수에 대한 정리. librdkafka에 Connection에 대한 내용이 정리되어 있다. librdkafka/INTRODUCTION.md at master · confluentinc/librdkafka · GitHub GitHub - confluentinc/librdkafka: The Apache Kafka C/C++ library The Apache Kafka C/C++ library. Contribute to confluentinc..

Kafka/Broker 2023.05.29