heowc / programming-study

개발 스킬, 언어, 설계에 대한 공유 저장소
https://heowc.dev/programming-study/repo/
53 stars 5 forks source link

[document] 카프카 2.7.x #124

Closed heowc closed 1 year ago

heowc commented 1 year ago

https://godekdls.github.io/Apache%20Kafka/contents/

http://www.yes24.com/Product/Goods/104410708

heowc commented 1 year ago

인체에서 중추 신경계 해당

폭 넓은 사례

단일 솔루션으로 핵심 3가지 기능으로 통해 원하는 end-to-end 이벤트 스트리밍을 구현 가능

어떻게?

개념과 용어

이벤트

프로듀서: 이벤트를 발행하는 클라이언트 애플리케이션 컨슈머: 이벤트를 읽고 처리하는 클라이언트 애플리케이션

토픽: 이벤트 저장 단위(?)

파티셔닝: 토픽 분할(?)

image

API 분류

유즈 케이스

https://hub.docker.com/r/bitnami/kafka

heowc commented 1 year ago

디자인

동기

실시간 데이터 피드를 처리할 수 있는 통합 플랫폼이 되도록 설계

저장

저장

효율성

배치 압축

heowc commented 1 year ago

리더가 프로듀서에게 메시지를 받았다면, 이를 팔로워에게 알리는가? 아니면 팔로워는 리더의 오프셋이 증가했는지 어떻게 인지하는가? -> 팔로워가 자기 오프셋보다 높은 값을 리더에게 일단 찔러봄

리더에게 리더에포크를 요청을 보낼 수 없을 정도의 장애 상황이라면? -> TBD

heowc commented 1 year ago

https://web.archive.org/web/20120619234320/http://sna-projects.com/blog/2009/08/introducing-the-nio-socketserver-implementation/

heowc commented 1 year ago

4장 내부 동작 원리

카프카 리플리케이션

궁금점

  1. 리더는 토픽단위 인가?
    • 파티션 단위...
  2. 리더에게만 메시지를 주고받는다면 브로커를 늘렸을때 안정성 이외에 효과는 무엇이며 어떻게 생기는지?
    • 다시 생각해보면, 브로커를 늘린다고 파티션이 느는것은 아니다. 고로, 브로커가 많이지면 그만큼 파티션이 보다 분산될 것이고 이로인해 사이드 이펙트가 덜(?) 해질 것으로 예상
  3. 키를 넣으면 순서보장을 위해 특정 파티션에만 들어가는데 이 관계랑 어떻게 연계되는지?
    • TBD. 파티셔너? 5장에서 확인 ✅
  4. 컨트롤러 브로커가 장애로인해 종료되거나 자연스럽게 종료된다면?
heowc commented 1 year ago

5장. 프로듀서의 내부 동작 원리와 구현

파티셔너

카프카 배치

중복없는 전송

정확히 한번 전송

궁금증

  1. 라운드로빈 전략으로 인해 프로듀서에 너무 만은 레코드가 쌓이게 되진 않을까? 그래서 시간 값은 필수여야 하는가?
  2. 프로듀서에 쌓이는 메시지는 메모리에 쌓이는데 이를 변경할 수 있는가?
  3. flush(), beginTransaction() 이 하는 일? 예제 코드만 보자면 메시지에 대해서 트랜잭선 처리를 하는지 알기 어려움.. 코드확인 필요 (파티셔너의 영향으로 롤백 가능성은?)
  4. TBD
heowc commented 1 year ago

스태틱 멤버십

리밸런싱은 컨슈머 그룹 전체를 대상이기 때문에 부담이 많은 작업 중 하나이다

레인지 파티샨 할당 전략

컨슈머 그룹에 컨슈머가 하나면 리밸런싱이 일어날까..?

The default partition.assignment.strategy is changed to "[RangeAssignor, CooperativeStickyAssignor]", which will use the RangeAssignor by default, but allows upgrading to the CooperativeStickyAssignor with just a single rolling bounce that removes the RangeAssignor from the list. Please check the client upgrade path guide here for more detail.

heowc commented 1 year ago

8장 카프카 버전 업그레이드와 확장

업그레이드

다양한 이유로 주기적인 버전 업그레이드는 필수이다.

릴리즈 노트 확인

버저닝

버전 업그레이드

설정이나 환경 문제로 예상치 못한 문제가 생길 수 있으니 개발 서버와 운영서버을 동일한 환경으로 맞추고 사전 테스트를 해볼 것

확장

파티션 재배치

주의사항

3.0 이후

heowc commented 1 year ago

protocol.version 처리 방식

heowc commented 1 year ago

보안

내부 시스템으로 사용되어 기본적으로 설정되어 있지 않음