Scatch note
카프가 개요 & 실습(세미나 정리, Pending)
19.06.20202 Min Read — In kafka

T 아카데미 아파치 카프카 세미나

강의자 : 최원영 (SK planet), DEV원영님

개요

  • 여러 Appication node들이 생성되면서 node별로 파이프라인 연결, 코드 복잡성이 증가함
  • 데이터 연동의 복잡성 증가

중추 신경처럼 하나의 노드에 집중하자!

모든 데이터를 브로커로 집중킴.. >> 처리량 중요 , 스케일아웃, 클러스터링, 고가용성 보장

  • Broker? 메타데이터를 저장하는 주키퍼와 연동, 컨슈머와 프로듀서 사이의 데이터 중재
  • Record? 정제된 토픽 데이터. 직렬/역직렬화해 컨슈머로 전달됨
  • POJO > 커스텀 오브젝트로 역/직렬화 사용
  • 기본제공 직렬화 : StringSerializer
  • Topic? 1개 이상 존재, 1개 이상의 파티션으로 구성, 파티션 내에서는 오프셋이 붙고, 숫자가 높을수록 최신
  • Producer?

저장 방법

  • 파일시스템 단위로 저장, 메시지가 저장될땐 세그먼트파일이 열려있음

컨슈머 > 파티션인 경우, 컨슈머 하나가 놀게됨, 이렇게는 사용 X

2개 이상의 컨슈머 그룹을 사용하는 경우도 있음

  • 1개 컨슈머의 장애에 대응

브로커같은 경우, 레플리카를 통해 이슈에 대응.

브로커 버전 / 클라이언트 버전 맞추기!

에러가 나진 않지만 성능상 ㅁ누제

Producer acks **매우매우 중요한 옵션

ack: 속도와 유실에 관한 설정 (브로커 여러개일 때 의미 가짐: ppt 83)

ack 0 : 연결된 즉시 성공으로 간주 속도 빠름

ack 1: reader 파티션에 저장되었는지 확인하면 성공

ack all : 리더 , 팔로워, 파티션에 저장되었는지 확인. 유실가능성 없음. 팔로워 파티션이 여러개 일수록 성능 저하, 신뢰도 상승

리밸런스 리스너 : 파티션 새로 할당 / 끊어졌을 때 신호 받기, 컨슈머가 많을 때 참고 위해 컨슈머 모니터링

200801 기준 우선순위에 밀려 Pending.

최원영님 카프카 repo 와 카프카 강의에서 학습한 내용 정리할 예정입니다.