- Là 1 streaming platform
- Là 1 nền tảng điều phối message trong các hệ thống phân tán
- Có khả năng chịu lỗi cao, commit log, horizontally-scalable
- Producer: Gửi message đến broker.
- Consumer: Nhận message từ broker.
- Broker: Vai trò môi giới, vận chuyển message từ producer đến consumer.
- Cluster: cụm của 1 hoặc nhiều broker, ZooKeeper là công cụ điều hành cluster, đưa ra chỉ định broker thay thế khi có 1 broker bị lỗi.
- Topic: chủ đề (unique name) trong hệ thống Kafka Cluster, dùng để phân nhóm message theo chủ đề, có thể có nhiều các partitions nhỏ.
- Partitions: các vùng nhỏ trong hệ thống kafka topic.
- Offset: ô thứ tự trong 1 cụm partition.
- Consumer groups: nhóm các consumer để lấy thông tin khi có 1 lượng lớn data được gửi từ nhiều producer.
-
Start ZooKeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
-
Start Kafka Broker:
bin/kafka-server-start.sh config/server.properties
-
Get list of the active broker ids:
bin/zookeeper-shell.sh localhost:2181 ls /brokers/ids
-
Get information the broker by id:
bin/zookeeper-shell.sh localhost:2181 get /brokers/ids/0
-
Create topic:
bin/kafka-topics.sh --create --topic ${topic_name} --bootstrap-server localhost:9092
-
Describe topic:
bin/kafka-topics.sh --describe --topic ${topic_name} --bootstrap-server localhost:9092
-
Send message by producer:
bin/kafka-console-producer.sh --topic ${topic_name} --bootstrap-server localhost:9092
-
Read message by consumer:
bin/kafka-console-consumer.sh --topic ${topic_name} --from-beginning --bootstrap-server localhost:9092
-
Create topic with partition number:
bin/kafka-topics.sh --create --zookeeper localhost:9092 --replication-factor 1 --partitions 3 --topic ${topic_name}
-
Describe offset in Kafka topic and create consumer group:
bin/kafka-console-consumer.sh --topic ${topic_name} --bootstrap-server localhost:9092 --from-beginning --group ${group_name}
-
Show topic and offset of partition:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group ${group_name} --describe
-
Read message in the partition by offset:
bin/kafka-console-consumer.sh --topic ${topic_name} --bootstrap-server localhost:9092 --partition 1 --offset 2