분류 전체보기 338

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

Consumer Error Handling Patterns

목차 Kafka의 에러 핸들링은 보통 Consumer단에서 처리한다고 한다. 이러한 에러를 핸들링하는 패턴들에 대해 정리. [Poison Pill] Poison Pill이란 Consumer가 처리하지 못하는 메시지가 왔을 때를 의미힌다. (Deserializer를 하지 못하는 메시지 형태) M2가 비정상적 메시지라고 하면 M2를 처리하다가 오류가 나고 Consumer가 실패할 것이다. Spring - ErrorHandlingDeserializer 스프링에서는 ErrorHandling Deserializer를 제공하고 있다고 한다. 그래서 이상한 데이터가 들어오면 ErrorHandling Logic의해 처리되고, 정상적인 데이터들만 Consumer로 넘어가게 하는 패턴을 권장한다고 한다. [Error Ha..

Kafka/Consumer 2023.05.09

Schema-Registry Naming Strategy

목차 초기에는 1개의 전략밖에 없었으나 현재는 3개가 존재한다. TopicName Strategy(Default) RecordName Strategy TopicRecordName Strategy TopicName Strategy(Default) 아무것도 설정하지 않을 때 설정. subject명이 "토픽명"-key, "토픽명"-value와 같이 구성된다. ex) order-key, order-value 그래서 Schema-Registry가 활성화된 토픽에 넣고자하면 order-value라는 subject를 찾아가서 처리하게 된다. KsqlDB는 아직까지 TopicName Strategy만 지원하고 있다고 한다. Connect는 Connector마다 지원하는 전략이 다 다르기 때문에 확인이 필요하다. 스키마..

Ubuntu에 Docker 특정 버전 설치하기

Docker 공식 GPG 키를 다운로드. $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Docker의 stable 저장소를 등록 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 시스템 패키지 인덱스 업데이트 $ sudo apt-get update 설치 가능한 Docker 버전을 확인 $ apt-cache madison docker-ce docker-ce | 5:24.0.0-1~ubuntu.18.04~bionic | https://download.docker.co..

Docker 2023.05.04