inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

멀티스레드 컨슈머 애플리케이션

'멀티스레드 컨슈머 애플리케이션' 편을 보고 질문드립니다~

581

GSP

작성한 질문수 24

0

안녕하세요 데브원영님. 수준높은 강의 항상 잘보고있습니다.

다름아니라, '멀티스레드 컨슈머 애플리케이션' 강의를 듣고 관련 내용을 찾아보던 와중에 '메세지 역전현상' 이라는 이슈를 찾았습니다.

멀티 스레드 혹은 멀티 프로세스로 동작할경우,

파티션이 하나더라도 스레드의 작업종료 시간이 전부 다르기때문에 순서보장이 필요한 시스템에 치명적이라는 내용이였습니다.

이 문제를 해결하기 위해 메세지에 key와 partioner 인터페이스를 구현하더라도 파티션 수와 스레드 수가 1:1 매칭이 아닐 경우 순서가 틀어지거나, Key 설계를 잘못할 경우 특정파티션으로 데이터가 몰리게되어 scale-out을 한 의미가 퇴색 될 것 같아서요.

'순서보장 + (다중 파티션 + 다중 컨슈머 설계로 성능확보)' 가 필요한 시스템에서 '메세지 역전현상' 문제를 해결 할수 있는 방법이 있을까요?.. 발행된 메세지가 DB에 적재되있을 경우, 최종 일관성(순서보장문제)을 DB에 조회하여 해결할 수 있을 것 같은데요!.. 저장소에 적재되지 않는 메세지일 경우 해당문제를 어떻게 풀어야될지 잘 모르겠네요 ...

관련하여 답변 부탁드리겠습니다!.. 확인 감사합니다.~

kafka 데이터-엔지니어링

답변 1

3

데브원영 DVWY

안녕하세요!

파티션이 한개라고 하더라도 프로듀서가 멀티 스레드/멀티 프로세스로 운영되면 실제로 생성된 시간과 무관하게 파티션에 들어가는 레코드는 시간 역전현상이 발생할 수 있습니다.

왜냐면 프로듀서의 기본 동작 특성상 네트워크 통신을 수행하는동안 데이터의 전송이 다른 프로듀서에 비해 지연될 수 있기 때문입니다. 이러한 동작은 레코드에 메시지 키를 지정하든 지정하지 않든 동일하다고 볼 수 있습니다.

그렇기 때문에 순서보장이 엄격하게 되어야 한다면 카프카 스트림즈 등 스트림 프로세싱 라이브러리/프레임워크에서 윈도우(window)기능을 사용하시는 것이 가장 좋아 보입니다. 윈도우 처리라는 것은 일정 시간동안 지연하여 데이터를 종합해서 처리하는 방법을 뜻합니다. 자세한 윈도우 처리에 대한 내용은 아래 링크를 참고하시면 좋을것 같네요~!

0

GSP

답변 감사합니다 :)

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