inflearn logo
강의

講義

知識共有

【Apache Kafkaアプリケーションプログラミング】コンセプトからコンシューマー、プロデューサー、コネクト、ストリームズまで!

パーティション割り当てコンシューマアプリケーション

custom partitioner 을 이용한 메세지역전 현상 해결방안

解決済みの質問

396

GSP

投稿した質問数 24

0

원영님 안녕하세요. 강의 항상 잘듣고있습니다.

다름아니라, CDC커넥터에서 발생된 메시지 처리시

'메세지 역전현상'을 해결하기 위해 테이블의 PK값을 기준으로 특정 파티션으로 데이터가 보내질수 있도록 cusomPartitioner을 구현하고 commitSync로 메시지 순서를 보장하려고 하는데요.

ex)

1번 pk -> 1번 파티션 -> 1번 consumer.

2번 pk -> 2번 파티션 -> 2번 consumer.

이럴 경우에 특정파티션으로 데이터가 쏠리면 스케일아웃을 한 의미가 없어지더라구요. 실시간성이 요구되는 비지니스라 일정 이상의 TPS가 나와야되거든요.

문제 접근방식이 잘못됬는지... 메시지역전문제와 TPS 성능을 위해선 컨슈머에서 다른 도구들을 이용해서 해결해야 하는건지... 확신이 안서더라구요.. 혹시 비슷한 경험을 통해서 위와같은 문제를 해결해보셨다면 조언부탁드리겠습니다.

 

감사합니다!

 

kafka 데이터-엔지니어링 서버

回答 1

1

dvwy

안녕하세요.

일부 파티션에 데이터가 몰릴 경우 파티션을 늘리더라도 컨슈머랙을 해소할 방법이 어려운 것은 실제 업무환경에서도 자주 발생합니다. 사실 모든 분산 처리 시스템이 그러하듯이, 순서의 일관성과 성능 2가지 토끼를 한번에 잡을 방법은 매우 어렵습니다. 그렇기 때문에 작성해주신 것과 같이 TPS(성능)과 순서의 일관성을 잡기 위해서는 TPS를 높이거나 순서의 일관성을 낮추어야 합니다.

위와 같은 상황에서 TPS를 높이는 방법이 가장 현실적으로 보이며, 컨슈머측의 데이터 처리속도를 레코드 단위로 확인하시고, 관련 로직을 튜닝하는 방식으로 TPS를 높여보시면 좋을거 같아요.

0

GSP

답변 감사드립니다!

consume 이후 lag가 줄어들지 않음

0

71

2

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

0

102

2

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

0

95

2

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

0

95

2

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

0

83

2

KTable 키가 없는 레코드 처리

0

70

2

컨슈머 테스트 코드 작성

0

92

2

리밸런스 onPartitionRevoked이 필요한 상황

0

72

2

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

0

117

2

reset offset 질문

0

73

2

KStreamJoinKTable 실행시 오류

0

74

2

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

0

137

2

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

0

116

1

java, kotlin

0

126

2

shutdownThread 에 대한 문의 입니다.

0

151

2

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

0

265

2

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

0

149

2

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

0

178

3

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

0

162

2

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

0

221

2

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

0

297

1

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

0

278

3

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

0

217

2

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

0

192

2