• Testing a stream application

    Testing a Stream Application Kafka Streams 어플리케이션을 테스트 하기 위해서, 카프카가 test-utils을 제공한다. 이는 dependecy를 추가함으로써 사용할 수 있다. 예를 들어 pom.xml에 다음과 같이 디펜던시를 추가할 수 있다. <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>1.1.0</version> <scope>test</scope> </dependency> test-utils 패키지는 TopologyTestDriver를 제공한다. 해당 클래스는 Topology에 데이터를 흘려보내는데 사용된다. 테스트 드라이버는 input 토픽으로부터 데이터를 읽어와서...


  • 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...