inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

스트림즈DSL의 윈도우 프로세싱

윈도우 연산시 주의해야할 사항 + 기타 질문

262

보키

작성한 질문수 31

0

윈도우 연산시 주의해야 할 사항에

텀블링 윈도우에 한해서 윈도윙이 5초간격이라면

커밋 간격도 5초로 맞춰주면

굳이 최신 데이터를 어떤 로직처리에 의해서 뽑아줄 필요가 없지 않을까요?

  1. 스트림 처리할때만 커밋 간격을 윈도우 크기만큼 맞추고, 나머지는 디폴트나 설정한 값으로 처리하면 될것 같은데요


    이렇게 하는건 어떻게 생각하시는지 궁금합니다

     

  2. 자바의 main 말고 카프카의 데이터를 컨슘해서 프론트엔드로 서빙하는 스프링 예제

  3. provectuslabs/kafka-ui의 이미지를 사용해서 도커컴포즈로 브로커를 3대 띄우고 운영한다던지(아무래도 쿠버네티스 환경까지 들어가면 너무 깊어지니깐)

  4. 스키마 레지스트리와 KSQL 등에 대한 것

추가로 2, 3, 4번 예제는 강의에 없는것 같은데 혹시 집필하신 책에 나와있을까요?

 

많은 내용을 배워서 갑사합니다

추가로 현업에서 사용되는 다양한 처리 방법을 조금 더 심도있게 배우고 싶습니다

 

kafka 데이터-엔지니어링

답변 2

0

데브원영 DVWY

안녕하세요. 문의주신 내용에 답변드립니다

  1. 스트림 간격시 커밋 간격을 윈도우간격으로 맞추는 의도는 좋습니다. 그러나 이런 셋팅으로는 정확한 이벤트의 시간에 맞춘 데이터 처리가 불가능합니다. 예를 들어 15초 간격의 텀블링 윈도우가 존재하고, 00시00시15초에 발생한 이벤트가 있다고 가정해볼게요. 이 때, 해당 이벤트는 00초~15초 윈도우 프로세싱 시간내에 해당 스트림즈 애플리케이션에 도착할 수 있을까요? 현실적으로 불가능합니다. 해당 시간에 발생한 이벤트는 아무리 빨리 네트워크를 타고 들어오더라도 15~30초 윈도우 프로세싱에 걸치게 됩니다. 이렇듯이 단순히 스트리밍 결과를 커밋 타이밍에 맞추도록 윈도우 간격과 커밋 타이밍을 맞추는 것은 의미가 없습니다. 또한 지연도 발생할 수 있구요. 그렇기 때문에 말씀하신 내용을 원하신다면 차라리 suppress() 메서드를 활용하시는 것이 좋겠습니다.

2,3,4번에 대한 내용은 책에 포함된 내용이 아니고, 지금 들으시는 강의에도 포함된 내용이 아닌점 참고부탁드립니다.

감사합니다.

0

보키

원영님!! 답변 정말 감사합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

  1. 스트림 처리에서 커밋 간격을 윈도우 크기에 맞추는 방법에 대해 궁금하신 것 같습니다. Kafka Streams는 이벤트 시간과 처리 시간을 구분하고, 윈도우 지원, 정확한 한 번 처리 의미론(exactly-once processing semantics) 및 애플리케이션 상태의 간단하면서도 효율적인 관리와 같은 중요한 스트림 처리 개념을 기반으로 합니다. 커밋 간격을 윈도우 크기에 맞추는 것은 특정 사용 사례에 따라 유용할 수 있지만, 전체적인 애플리케이션의 성능과 정확성을 고려해야 합니다. 따라서 경우에 따라 유연하게 접근하는 것이 중요합니다. (출처: Kafka 3.6 Documentation - Kafka Streams)

2, 3, 4. 아파치 카프카와 관련된 고급 주제들, 특히 자바를 사용하지 않고 카프카 데이터를 프론트엔드로 서빙하는 스프링 예제, Kafka UI를 사용한 도커 컴포즈 설정, 스키마 레지스트리 및 KSQL에 대한 내용은 제공된 정보에 포함되지 않습니다. 이러한 주제들은 Kafka 공식 문서나 다른 자료를 통해 더 깊이 있게 탐색할 수 있으나, 제공된 정보 내에서는 직접 관련된 내용을 찾을 수 없어 구체적인 답변을 드리기 어렵습니다. 이러한 고급 주제들에 대한 자세한 내용은 Kafka 공식 문서 또는 해당 주제에 관한 전문 서적이나 온라인 자료를 참고하시는 것이 좋습니다.

현업에서 사용되는 다양한 처리 방법에 대해 더 심도 있게 배우고 싶으신 경우, Apache Kafka와 연관된 오픈 소스 프로젝트나 커뮤니티 참여를 통해 실제 사례와 최신 정보를 접하는 것도 좋은 방법입니다.

consume 이후 lag가 줄어들지 않음

0

75

2

안녕하세요. 강의의 카프카 버전과 현재 시점의 카프카의 차이점 문의 드립니다.

0

118

2

멱등성 프로듀서 retries 관련 질문입니다.

0

99

2

채팅 서비스 개발 시 주의점이 있을까요?

0

100

2

충분히 큰 파티션 생성시 궁금증이 존재합니다.

0

88

2

KTable 키가 없는 레코드 처리

0

73

2

컨슈머 테스트 코드 작성

0

94

2

리밸런스 onPartitionRevoked이 필요한 상황

0

74

2

카프카 클러스터에서 감당 가능한 파티션(레플리카) 수 문의

0

120

2

reset offset 질문

0

77

2

KStreamJoinKTable 실행시 오류

0

78

2

auto.commit.interval.ms 옵션 관련 질문 드립니다.

0

142

2

파티션, 컨슈머 그룹, 컨슈머 관련 질문

0

117

1

java, kotlin

0

130

2

shutdownThread 에 대한 문의 입니다.

0

155

2

zookeeper실행시 오류가 발생합니다.

0

271

2

커스텀 소스 커넥터에서 Thread.sleep (1000) 은 왜 하는거에요?

0

153

2

처리량을 늘리기 위해서 파티션을 늘리고 컨슈머를 늘려야한다고 설명하셨는데요

0

181

3

파티션 개수와 컨슈머 개수의 처리량 관련 질문

0

164

2

동영상 및 이미지 처리 관련 문의 드립니다.

0

226

2

주키퍼 없이 사용 문의 드립니다.

0

303

1

kafka 를 띄우니 오류가 발생하고 종료합니다.

0

281

3

zookeeper 실행시 오류 .. 무엇을 해야 할까요?

0

220

2

파티션 추가로 해결할 수 있지만 늘어난 파티션은 줄일 수 없지 않나요?

0

192

2