• KafkaStream Architecture

    Architecture 이 글에서는 Kafka Stream의 Thread Modeling과 Task에 대해서 정리한 글이다. 더 자세한 내용은 공식문서를 참고하길 바란다. Kafka Stream을 사용하면 스트림 어플리케이션을 쉽게 개발할 수 있다. 하지만 이를 위해서는 기본적으로 Kafka Streams가 어떻게 Thread를 생성하고 각 Thread에 Task를 할당하는지 알 필요가 있다. 아래의 그림은 Kafka Streams을 사용한 어플리케이션의 구조를 나타낸다....


  • Processor API

    Processor API 본 글은 Processor API를 번역하고 정리한 글이다. 따라서 더 자세한 내용이나 원본 글을 보고 싶은 경우에는 공식 홈페이지를 참고하길 바란다. Processor API를 사용하면 커스텀 프로세서를 정의하고 연결할 수 있으며 State Store와 상호작용할 수도 있다. Processor API를 통해서 임의의 스트림 프로세서를 정의할 수 있으며 이 프로세서를 관련된 State Store와...


  • Configuring a Streams Application

    Configuring a Streams Application StreamsConfig Kafka Streams를 설정하려면 StreamsConfig 객체를 사용하면 된다. 다음과 같은 순서로 설정을 할 수 있다. java.util.Properties 객체를 생성 파라미터를 세팅 StreamsConfig 객체를 생성할 때 Properties를 생성자를 통해서 전달한다. 아래는 StreamsConfig 객체를 생성하는 간단한 샘플코드이다. import java.util.Properties; import org.apache.kafka.streams.StreamsConfig; Properties settings = new Properties(); // Set a...


  • Spring Boot Starter

    Spring Boot Starter Spring Boot를 사용하다보면 spring-boot-starter-xxxx 형태의 프로젝트를 많이 사용하게 된다. Spring Boot Starter 프로젝트는 POM 파일 제공을 통해 필요한 dependecy의 구성을 한 번에 제공하는 프로젝트이다. 예를 들어, spring-boot-starter-web의 경우 Web Application을 개발할 때 필요한 dependency의 구성을 한 번에 제공한다. spring-boot-starter-web을 추가하면 아래와 같은 dependency들이 추가된다. org.springframework.boot:spring-boot-starter org.springframework.boot:spring-boot-starter-tomcat org.springframework:spring-web...


  • Spring Kafka Retry

    Spring Kafka - Retrying Retrying Deliveries Spring Kafka에는 Retry 기능이 존재한다. Retry 기능을 사용하면 listener 메소드는 RetryingMessageListenerAdapter를 통해서 호출이 된다. Retry 기능을 사용하려면 RetryTemplate과 RecoveryCallback<Void>(callback은 설정하지 않아도 된다)를 container factory에 설정하면 된다. RetryTemplate과 RecoveryCallback<Void>에 대해서 더 자세히 알고 싶다면 spring-retry를 참고하자. 만약에 recovery callback을 등록하지 않으면, retry 실패시 예외는 컨테이너에게...