Kafka是一個開源的分佈式流式數據平臺,也成爲分佈式消息隊列。
用於高吞吐量、低延遲的數據發佈和訂閱。
1、什麼是topic (主題) ?
在Kafka中,Topic(主題)是數據發佈和訂閱的基本單位,它代表了相同類型的消息流。
一個Topic可以看作是一個邏輯上的數據流管道,消息的生產者(Producer)將消息發佈到Topic中,而消息的消費者(Consumer)從Topic中訂閱並接收消息。
Topic將消息按照一定的規則進行分區(Partition),每個分區包含了有序的消息序列。
以下是一些關於Kafka Topic的概念:
名稱:每個Topic都有一個唯一的名稱,用於標識和區分不同的主題。
2、什麼是分區(partition) ?
分區:Topic可以被分爲一個或多個分區,每個分區是一個有序的消息隊列。
爲什麼要設置分區?
在Kafka中,對Topic進行分區的主要目的是:
實現數據的並行處理、提高系統的吞吐量和可伸縮性。
- 並行處理:通過將Topic劃分爲多個分區,Kafka可以實現消息的並行處理。每個分區都是一個有序的消息隊列,可以獨立地進行讀取和寫入操作。這樣可以將消息的處理負載均衡到多個消費者上,提高整個系統的併發處理能力。
- 水平擴展:分區機制使得Kafka可以通過增加分區來水平擴展系統的吞吐量和容量。當系統的負載增加時,可以通過增加分區數量來分攤負載,使得每個分區上的消息處理壓力減輕,從而提高整體的處理能力。
3、什麼是副本(replica)?
副本:每個分區可以配置多個副本(Replica).
爲什麼要設置副本?
副本用於提供數據冗餘和高可用性。Kafka使用分佈式的副本機制來保證數據的可靠性和容錯性。
4、什麼是偏移量(offset)?
偏移量(Offset):每個消息在分區中都有一個唯一的偏移量,用於標識消息在分區中的位置。
消費者可以根據偏移量來定位和消費消息。
5、什麼是消息保留策略?
保留策略:Topic可以配置一個保留策略(Retention Policy),用於控制消息在Topic中的保留時間。
根據保留策略,可以設置消息在Topic中的最大保留時間或者保留的消息數量。