- 카프카 CLI을 연결해야하는 대상은 카프카에서 이루어져야 한다.
- Kafka-console-producer CLI 연결해야하는 대상은 카프카다.
- -broker-list(카프카)가 알맞은 옵션
- 존재하지 않는 토픽이 호출될 경우 기본적으로 카프카는 경고 메세지가 나오고 카프카가 자동으로 토픽을 생성한다.
- 하지만 카프카에서 사전에 미리 토픽을 만들도록 하는걸 적극추천해서 사용하지 않는편이 좋다.
- 토픽이 자동 생성되면 기본적으로 포함되는 파티션과 복제 계수는 (파티션 1, 복제 1) 이다.
- 기본적으로 1 & 1입니다. 그러나 num.partitions과 default.replication.factor 설정 항목으로 조절할 수 있다.
- kafka-console-consumer는 무작위 그룹 id를 사용한다.
- kafka-consumer-groups.sh –bootstrap-server localhost:9092 –list 를 실행해서 확인해보면 알 수 있다.
- 무엇을 사용해
kafka-console-consumer
에 대한 group.id를 오버라이드 해야 하는가?- —group [그룹명] 으로 오버라이드 해야된다.
- kafka-consumer-groups를 활용해 컨슈머 오프셋에서 운영을 수행할 수 있다.
아래의 브로커 서버가 여러개로 형성된 클러스터 구조를 카프카 클러스터 라고 한다.
- 일반적으로 3개 이상의 카프카 서버로 구성된다.
- broker에 저장된 메세지를 다른 broker에게 공유하고 하나의 broker에 문제가 생겼을 때, 레플리카(즉 복제)된 데이터가 리더가 되고, 그 브로커 역할을 대체해서 시스템을 정상적으로 유지 시킨다.
아래 표 내용을 통틀어 카프카 브로커라고 한다.
- 카프카 브로커
- 카프카 클러스터는 다수의 카프카 브로커들로 구성되어 있다. 브로커가 의미하는건 그냥 카프카 서버를 의미한다. 브로커라고 불르는 이유는 그게 중간책 역활로 데이터를 가로채서 받고 보내고 하기 때문에 카프카에서 브로커라고 부른다.
- 브로커는 ID로 식별하고, ID는 정수로 이루어져 있다.
- 각각의 브로커에는 특정한 토픽 파티션만 담긴다.
- 데이터는 모든 브로커에 걸쳐 분산 된다.
- 카프카 클러스터는 다수의 카프카 브로커들로 구성되어 있다. 브로커가 의미하는건 그냥 카프카 서버를 의미한다. 브로커라고 불르는 이유는 그게 중간책 역활로 데이터를 가로채서 받고 보내고 하기 때문에 카프카에서 브로커라고 부른다.
이름 | 설명 | 특징 |
---|---|---|
Kafka Topics | Topic은 데이터 스트림 이다. | 데이터가 들어갈 수 있는 공간이며, 여러 개의 토픽이 생성될 수 있다. |
Kafka Producer | 카프카의 토픽으로 메시지를 보내는 역할을 하는 애플리케이션, 서버 등을 모두 프로듀서라고 부른다 | 토픽으로 |
Kafka Consumer | 토픽에서 데이터를 읽을 수 있게 만들어주는 기능으로 Pull 모델을 기반으로 구현된다. | 서버에서 데이터를 요청하고 되돌아오는 응답을 받는다. 그리고 Consumer들은 자동으로 어떤 브로커에서 데이터를 읽어들일지 안다. |
Kafka Groups | Kafka를 사용하고 스케일링을 하려고 할 때 애플리케이션 안에 많은 Consumer들이 그룹 형태로 데이터를 읽는데 이걸 Consumer Group이라고 한다. | 컨슈머 그룹이 파티션을 읽는 방식으로 같은 그룹에 속한 각각의 컨슈머는 모든 파티션에서 읽기를 공유한다. |
Kafka Consumer Offset | 카프카는 각 파티션마다 메세지가 저장되는 위치를 오프셋(offset) 이라고 부른다. | 오프셋은 파티션 내에서 유일하고 순차적으로 증가하는 숫자(64비트 정수) 형태로 되어 있다 |
Kafka Consumer Groups – Reset Offsets | 카프카 컨슈머 오프셋을 리셋한다. | 여러가지 설정 옵션이 있으며, 설정한 옵션대로 오프셋을 리셋해서 되돌린다. |