• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    해결됨

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

23.06.24 15:43 작성 조회수 230

0

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

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

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

ex)

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

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

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

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

 

감사합니다!

 

답변 1

답변을 작성해보세요.

1

안녕하세요.

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

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

GSP님의 프로필

GSP

질문자

2023.06.25

답변 감사드립니다!