kafka常用命令及概念總結,kafka學習三

一、常用命令

最近在學習kafka,在搭建kafka集羣時,用到了很多常用命令,藉此記錄下來,不斷學習不斷記錄。
這是kafka的文件目錄
在這裏插入圖片描述

1.啓動kafka

-daemon 代表後臺運行方式

./bin/kafka-server-start.sh -daemon ./config/server.properties

2.停止kafka服務

./bin/kafka-server-stop.sh

3.創建topic,創建一個topic名爲kafka1

單機

./bin/kafka-topics.sh --create --zookeeper 192.168.211.137:2181 --replication-factor 3 \
--partitions 3 --topic kafka1

集羣:

./bin/kafka-topics.sh --create --zookeeper 192.168.211.137:2181,192.168.211.139:2181,\
192.168.211.140:2181 --replication-factor 3 --partitions 3 --topic kafka1

參數解析:

  1. replication-factor 3 複製3份
  2. partitions 3 創建3個分區

4.Topic

  1. 查看所有topic
./bin/kafka-topics.sh --zookeeper ip:2181 --list
  1. 查看指定topic
./bin/kafka-topics.sh --zookeeper ip:2181 --describe --topic kafka1
  1. 刪除topic
./bin/kafka-topics.sh --delete --zookeeper ip:2181 --topic kafka1

5.生產消息

  1. 單機
./bin/kafka-console-producer.sh --broker-list ip:9092 --topic kafka1
  1. 集羣
./bin/kafka-console-producer.sh --broker-list ip1:9092,ip2:9092,ip2:9092 --topic kafka1

6.消費消息

  1. 單機
./bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --from-beginning --topic kafka1
  1. 集羣
./bin/kafka-console-consumer.sh --bootstrap-server ip1:9092,ip2:9092,ip3:9092 \
--topic kafka1 --from-beginning

9.consumer管理

  1. 查看consumer Group列表
./bin/kafka-consumer-groups.sh  --list  --bootstrap-server ip:9092
  1. 查看指定group.id的消費情況
./bin/kafka-consumer-groups.sh --bootstrap-server 47.52.199.51:9092 --group test-1 --describe

二、基本概念

1.理解kafka

Kafka是一個分佈式數據流平臺,可以運行在單臺服務器上,也可以在多臺服務器上部署形成集羣。
它提供了發佈和訂閱功能,使用者可以發送數據到Kafka中,也可以從Kafka中讀取數據。

2.Topic

主題,Kafka 中的消息都以主題爲單位進行歸類,生產者負責將消息發送到特定的主題(發送到 Kafka 集羣中的每一條消息都要指定一個主題),消費者負責訂閱主題並進行消費。比如應用程序A訂閱了主題t1,應用程序B訂閱了主題t2而沒有訂閱t1,那麼發送到主題t1中的數據將只能被應用程序A讀到,而不會被應用程序B讀到。

3.Broker

一臺kafka服務器就可以稱之爲broker,Kafka 集羣由多個 Kafka 實例組成,每個kafka實例稱爲 broker,在集羣中每個 broker 都有一個唯一的 brokerid ,不能重複。

4.Partition

分區,主題可以細分爲多個分區,一個分區只屬於一個topic,每個topic可以有一個或多個partition(分區)。物理上把topic分成一個或者多個分區,每一個分區是一個有序的隊列。且每一個分區在物理上都對應着一個文件夾,該文件夾下存儲這個分區所有消息和索引文件。Kafka使用分區支持物理上的併發寫入和讀取,從而大大提高了吞吐量。Kafka只保證一個分區的數據順序發送給消費者,而不保證整個topic裏多個分區之間的順序.

5.Record

記錄,實際寫入Kafka中並可以被讀取的消息記錄,每個record包含了key、value和timestamp。

6.Producer

生產者,也就是發送消息的一方。生產者負責創建消息,然後將其發送到 Kafka 中。

7.Consumer

消費者,也就是接收消息的一方,用來讀取Kafka中的數據。

8.Consumer Group

消費者組,一個消費者組可以包含一個或多個消費者。使用多分區+多消費者方式可以極大提高數據下游的處理速度。
consumer group是 Kafka 提供的可擴展且具有容錯性的消費者機制。組內有着多個消費者,它們共享一個公共的 id,即 group id。組內的所有消費者協調在一起來消費訂閱主題的所有分區,而且每個分區只能由同一個消費組內的一個消費者來消費。

9.Offest

Offset指的是Partition以及User Group而言,記錄某個user group在某個partiton中當前已經消費到達的位置。

10.Replicas(副本)

每一個分區,根據複製因子N,會有N個副本,比如在broker1上有一個topic,分區爲topic-1, 複製因子爲2,那麼在兩個broker的數據目錄裏,就都有一個topic-1,其中一個是leader,一個replicas同一個Partition可能會有多個Replica,而這時需要在這些Replication之間選出一個Leader,Producer和Consumer只與這個Leader交互,其它Replica作爲Follower從Leader中複製數據

參考文章:

Kafka基本概念及原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章