들어가기 전 ksqlDB는 스트림을 처리하는 어플리케이션을 위해 제작된 DB다. ksqlDB 데이터의 기본 단위는 이벤트인데, 이벤트 기반의 처리는 Kafka가 매우 잘 만들어져 있다. 따라서 ksqlDB는 Kafka가 사용하고 있는 개념을 가지고 와서 사용한다. ksqlDB에서는 크게 Stream / Table이라는 개념을 가지고 작업을 한다. Stream은 이벤트의 흐름이라고 이해할 수 있다. 과거부터 지금까지 흘러왔던 모든 역사를 보여주는 것이다. 반면 Table은 지금 현재 상태가 어떤지를 보여주는 개념이다. Stream / Table Stream과 Table은 각각 서로 다른 개념을 의미한다. 따라서 필요한 것을 적절하게 사용할 수 있어야 한다. Stream Stream은 흐름을 의미한다. St..
Kafka Consumer란 무엇인가? 카프카의 Consumer는 Broker로부터 메세지를 받아오는 객체다 Kafka Consumer의 구성 모든 Consumer는 고유한 그룹 ID를 가지는 Consumer Group에 소속되어야 한다. 같은 Consumer Group에 속한 파티션들끼리는 협력하면서 메세지를 읽어온다. 하나의 Consumer Group 내에서 한 Consumer는 여러 파티션을 읽어올 수 있다. 그렇지만 한 파티션을 여러 Consumer가 읽을 수는 없다. 한 파티션을 여러 Consumer가 읽을 경우, 어떤 메세지가 정상인지를 확인할 수 없기 때문이다. 따라서 Consumer 갯수
kafka-dump-log # 위 명령어를 이용해서 확인할 수 있음. $ $CONFLUENT_HOME/bin/kafka-dump-log 위 명령어를 이용해서 log를 찍어볼 수 있다. 실습 # 토픽 삭제 및 생성 $ kafka-topics --bootstrap-server localhost:9092 --delete --topic multipart-topic $ kafka-topics --bootstrap-server localhost:9092 --create --topic multipart-topic --partitions 3 # keyload.log 파일 생성하기 $ touch keyload.log $ for i in {1..2000} do echo "$i:test key message sent tes..