실행된 카프카 애플리케이션 서버 중 1대 N 개의 Broker중 1대는 컨트롤러(Controller) 기능 수행 주키퍼의 메타 데이터로 누가 컨트롤러 인지 저장
객체를 프로듀서에서 컨슈머로 전달하기 위해 Kafka 내부에 Byte 형태로 저장할 수 있도록 직렬화/역직렬화하여 사용
Topic 은 여러개의 파티션 할당 가능 메세지 순서는 파티션 별로 다르다.
Producer는 Record를 생성하여 Broker로 전송한다. Consumer는 Record를 Broker로 가져온다. 여러개의 Consumer가 동일한 Record도 가져올 수 있다.
메세지가 저장되는 파일 시스템 단위
Topic에 파티션 의 개수 >= Consumer의 개수 리밸런스 발생 : 파티션 컨슈머 할당 재조정
컨슈머 그룹에 따라 파티션을 접근할 수있다.
하둡에 적재를 못해도 엘라스틱서치는 무관하게 장애 격리가 된다.
Broker Partition Replication(고 가용성을 위한 복제) 리더 파티션 (Kafka 클라이언트와 데이터를 주고 받는 역할) 팔로워 파티션 (리더 파티션을 계속 복제)
ISR이 아닌 상태에서 장애가 나면 : unclean.leader.election.enable (Default : False) False이면 리더가 복구될때까지 기다린다. 유실해도 괜찮다면 True 이다. Network를 탄다.(Latency도 유의한다) Replica Factor는 주로 2~3Kafka rack-awareness(Server Rack 이슈에 대응) Rack에 다수의 브로커를 넣지 않는다(서버 운용 개념)
고 가용성을 보장해야 한다.브로커 버젼과 클라이언트 버젼 호환성 맞추는게 중요 Kafka Connect 를 통해 Data를 Import/Export 가능하다.
이벤트 브로커와 메세지 브로커 메세지 브로커는 이벤트 브로커로 사용 불가능 이벤트 브로커는 메세지 브로커로도 사용 가능