深入理解Kafka(4) 主題與分割槽

2021-09-24 12:12:00 字數 668 閱讀 5601

主題的管理包括建立主題、檢視主題資訊、修改主題和刪除主題等操作。可以通過kafka提供的kafka-topics.sh指令碼來執行這些操作,這個指令碼位於$kafka_home/bin/ 目錄下,其核心**僅有一行,具體如下:

exec $(dirname $0)/kafka-run-class.shkafka.admin.topiccommand"$@"

可以看到其實質上是呼叫了kafka.admin.topiccommand 類來執行主題管理的操作。

可以通過kafka-topics.sh 指令碼來建立主題。示例如下:

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic mytopic --partitions 4 --replication-factor 2

輸出:created topic 」mytopic」

主題和分割槽都是提供給上層使用者的抽象, 而在副本層面或更加確切地說是log 麵才有實際物理上的存在。同乙個分割槽中的多個副本必須分布在不同的broker 中,這樣才能提供有效的資料冗餘。

kafka深入理解

對於傳統的message queue而言,一般會刪除已經被消費的訊息,而kafka集群會保留所有的訊息,無論其被消費與否。當然,因為磁碟限制,不可能永久保留所有資料 實際上也沒必要 因此kafka提供兩種策略去刪除舊資料。一是基於時間,二是基於partition檔案大小。可以通過配置 kafka h...

Kafka訂閱主題與分割槽

在建立好消費者之後,我們就需要為該消費者訂閱相關的主題了。乙個消費者可以訂閱乙個或多個主題 使用subscribe 方法訂閱了乙個主題,對於這個方法而言,既可以以集合的形式訂閱多個主題,也可以以正規表示式的形式訂閱特定模式的主題,消費者使用集合的方式 subscribe collection 來訂閱...

深入理解硬碟的Linux分割槽

在學習 linux 的過程中,安裝 linux 是每乙個初學者的第乙個門檻。在這個過程中間,最大的困惑莫過於給硬碟進行分割槽。雖然,現在各種發行版本的 linux 已經提供了友好的圖形互動介面,但是很多的人還是感覺無從下手。這其中的原因主要是不清楚 linux 的分割槽規定,以及它下面最有效的分割槽...