kafka consumer

yoon__0_0·2024년 7월 4일
0

이어드림 수업

목록 보기
88/103

동작 방식

  • Fetch 된 record가 있는 경우 최대 max.poll.records 만큼 데이터를 가져옴
  • record가 많으면 record를 많이 늘리기 (작은 데이터일 경우)

설정

  • 최대 많이 가져오는 것이 좋음
  • 한번의 가져올 수 있는 양을 늘려주기
  • 비정형파일을 이용시 partition 사이즈를 좀 늘려줘야함.

Consumer group

  • Broker에는 Group coordinator가 존재함
  • consumer들이 뜨면 coordinator로 등록을 하게됨
  • 가장 먼저 뜬 consumer가 leader로 선정됨
  • leader consumer는 나머지 consumer에 대한 정보들을 알게 되고
  • 어떤 파티션꺼를 가지고 올지 결정하게 됨. (지정을 해줌)
  • 지정을 해주면 group coordinator에게 다시 할당을 알려줌 .

왜 consumer가 partition을 할당할까?

  • consumer가 몇개가 생길지 모름
  • 이것 까지 관리하게 되면 부하가 생김(broker에)

Partition 할당 strategy

  • RangeAssignor : 불균형 발생 가능

    • 토픽의 파티션 순서대로 consumer에 할당
    • 토픽 파티션이 0 => consumer 0
    • 파티션이 0,1 밖에 없다면, consumer 2는 놀고 있음
  • RoundRobinAssignor

    • consumer가 어떤 topic을 사용할지 정해져 있음
    • 이 이후에 각각의 topic을 가진 consumer들로 roundrobin 방식을 이용함.
    • 한쪽의 불균형이 올 수 있음.
    • 장애가 생기면 다시 전체 재할당을 함
  • StickyAssignor : 가장 안정적

    • consumer들끼리 partition개수가 2개 초과 차이가 발생한다면 못할당하게 막아놓음
    • 장애가 발생했을 때에도 개수의 균형을 맞추는 방식으로 동작함
profile
신윤재입니다

0개의 댓글