[Kafka CLI] 7. 가벼운 요약

  • 카프카 CLI을 연결해야하는 대상은 카프카에서 이루어져야 한다.
  • Kafka-console-producer CLI 연결해야하는 대상은 카프카다.
    • -broker-list(카프카)가 알맞은 옵션
  • 존재하지 않는 토픽이 호출될 경우 기본적으로 카프카는 경고 메세지가 나오고 카프카가 자동으로 토픽을 생성한다.
    • 하지만 카프카에서 사전에 미리 토픽을 만들도록 하는걸 적극추천해서 사용하지 않는편이 좋다.
  • 토픽이 자동 생성되면 기본적으로 포함되는 파티션과 복제 계수는 (파티션 1, 복제 1) 이다.
    • 기본적으로 1 & 1입니다. 그러나 num.partitions과 default.replication.factor 설정 항목으로 조절할 수 있다.
  • kafka-console-consumer는 무작위 그룹 id를 사용한다.
  • 무엇을 사용해 kafka-console-consumer에 대한 group.id를 오버라이드 해야 하는가?
    • —group [그룹명] 으로 오버라이드 해야된다.
  • kafka-consumer-groups를 활용해 컨슈머 오프셋에서 운영을 수행할 수 있다.

아래의 브로커 서버가 여러개로 형성된 클러스터 구조를 카프카 클러스터 라고 한다.

  • 일반적으로 3개 이상의 카프카 서버로 구성된다.
  • broker에 저장된 메세지를 다른 broker에게 공유하고 하나의 broker에 문제가 생겼을 때, 레플리카(즉 복제)된 데이터가 리더가 되고, 그 브로커 역할을 대체해서 시스템을 정상적으로 유지 시킨다.

아래 표 내용을 통틀어 카프카 브로커라고 한다.

  • 카프카 브로커
    • 카프카 클러스터는 다수의 카프카 브로커들로 구성되어 있다. 브로커가 의미하는건 그냥 카프카 서버를 의미한다. 브로커라고 불르는 이유는 그게 중간책 역활로 데이터를 가로채서 받고 보내고 하기 때문에 카프카에서 브로커라고 부른다.
      • 브로커는 ID로 식별하고, ID는 정수로 이루어져 있다.
      • 각각의 브로커에는 특정한 토픽 파티션만 담긴다.
      • 데이터는 모든 브로커에 걸쳐 분산 된다.
이름설명특징
Kafka TopicsTopic은 데이터 스트림 이다.데이터가 들어갈 수 있는 공간이며, 여러 개의 토픽이 생성될 수 있다.
Kafka Producer카프카의 토픽으로 메시지를 보내는 역할을 하는 애플리케이션, 서버 등을 모두 프로듀서라고 부른다토픽으로
Kafka Consumer토픽에서 데이터를 읽을 수 있게 만들어주는 기능으로 Pull 모델을 기반으로 구현된다.서버에서 데이터를 요청하고 되돌아오는 응답을 받는다. 그리고 Consumer들은 자동으로 어떤 브로커에서 데이터를 읽어들일지 안다.
Kafka GroupsKafka를 사용하고 스케일링을 하려고 할 때 애플리케이션 안에 많은 Consumer들이 그룹 형태로 데이터를 읽는데 이걸 Consumer Group이라고 한다.컨슈머 그룹이 파티션을 읽는 방식으로 같은 그룹에 속한 각각의 컨슈머는 모든 파티션에서 읽기를 공유한다.
Kafka Consumer Offset카프카는 각 파티션마다 메세지가 저장되는 위치를 오프셋(offset) 이라고 부른다.오프셋은 파티션 내에서 유일하고 순차적으로 증가하는 숫자(64비트 정수) 형태로 되어 있다
Kafka Consumer Groups – Reset Offsets카프카 컨슈머 오프셋을 리셋한다.여러가지 설정 옵션이 있으며, 설정한 옵션대로 오프셋을 리셋해서 되돌린다.
LIST