• Spring Boot Compression

    Spring Boot Compression Spring Boot Compression Spring boot에서는 Http Response Body를 압축할 수 있는 기능을 제공한다. 그 설정은 아래와 같다. server.compression.enabled=false server.compression.excluded-user-agents= server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript server.compression.min-response-size=2048 server.compression.enabled (기본값 : false) : 응답 압축을 사용할지 여부 server.compression.excluded-user-agents (기본값 : 빈 리스트) : 압축에서 제외할 사용자 에이전트 목록 server.compression.mime-types : 압축해야 하는 MIME 타입...


  • Embedded Kafka Cluster

    EmbeddedKafkaCluster KafkaStreams의 소스 코드를 보면 Integration Test 작성을 위해서 EmbeddedKafkaCluster를 많이 사용하는것을 볼 수 있다. EmbeddedKafkaCluster를 사용하면 마치 로컬에서 Kafka Broker를 실행시키는 것과 같은 효과를 얻을 수 있다. public class StreamIntegrationTest { private static final int NUM_BROKERS = 1; @ClassRule public static final EmbeddedKafkaCluster CLUSTER = new EmbeddedKafkaCluster(NUM_BROKERS); @Before public...


  • Monitoring Consumer LAG - Burrow

    Burrow Burrow - Kafka Consumer Lag Checking Burrow는 카프카의 모니터링 툴로 Consumer의 LAG을 모니터링할 때 주로 사용된다. 모든 Consumer의 커밋 오프셋을 모니터링한다. 또한 필요할 때 Consumer의 상태를 계산한다. HTTP 엔드포인트를 통해 상태를 요청할 수 있으며, 다른 카프카 클러스터의 정보를 제공받을 수 있다. 이메일이나 HTTP 호출을 통해 다른 서비스로 상태를 보낼...


  • Stream DSL

    Streams DSL 이 글은 Streams DSL를 번역한 글이다. 잘못된 번역이 있을 수 있으며 생략된 부분이 있기 때문에 더 자세한 내용은 원글을 참고하길 바란다. Kafka Stream DSL (Domain Specific Language)는 Stream Processor API를 사용해서 구현되어 있다. 초보자들은 DSL를 사용하는게 좋다. 대부분의 데이터 처리 작업은 DSL를 사용해서 단 몇 줄로 처리할 수...


  • KTable, Global KTable

    KStream, KTable, GlobalKTable KStream Note 오직 Kafka Streams DSL만이 KStream 개념이 가지고 있다. KStream은 레코드 스트림의 추상화이다. 레코드 스트림안에 있는 모든 레코드들은 INSERT로 해석된다. KStream에서는 레코드를 추가하는 것만 가능하다. 삭제나 업데이트 개념이 없다. 레코드의 키가 같다 하더라도 같은 키를 가진 기존행을 대체할 수는 없다. 예를 들어 다음 두 개의 데이터...