• 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 실패시 예외는 컨테이너에게...


  • Kafka Offsets

    Kafka Offsets 본 글에서는 Consumer의 Offset에 대해 알아보도록 하자 Offsets and Consumer Position Kafka는 각각의 Record에 대해 오프셋을 가지고 있다. 이 오프셋은 파티션 내에서 Record에 대한 고유한 식별자로 사용된다. 또한 Consumer의 파티션내의 position를 나타낸다. 예를 들어 Consumer의 Position이 5인 경우에 오프셋이 0부터 4까지인 Record는 이미 처리하였음을 의미한다. 또한 다음 poll()에서...