基本概念
本文說明云消息隊列 Kafka 版涉及的專有名詞和術(shù)語,幫助您更好地理解相關(guān)概念并使用該產(chǎn)品。
Apache Kafka
一款開源的分布式數(shù)據(jù)流處理平臺,可以實時發(fā)布、訂閱、存儲和處理數(shù)據(jù)流。更多信息,請參見Apache Kafka。
云消息隊列 Kafka 版
一款由阿里云提供的Apache Kafka全托管服務(wù),具備免部署、免運維、低成本、高彈性、高可靠、高吞吐等優(yōu)勢。更多信息,請參見什么是云消息隊列 Kafka 版?。
ZooKeeper
一款開源的分布式應(yīng)用程序協(xié)調(diào)服務(wù)。在云消息隊列 Kafka 版中,ZooKeeper主要用于集群管理、配置管理、Leader選舉。ZooKeeper是云消息隊列 Kafka 版的一部分,您無需感知ZooKeeper。
Broker
一個云消息隊列 Kafka 版服務(wù)端節(jié)點。云消息隊列 Kafka 版提供全托管服務(wù),會根據(jù)您的實例的流量規(guī)格自動變化Broker的數(shù)量和配置。您無需關(guān)心具體的Broker信息。
集群
由多個Broker組成的集合。
實例
一個獨立的云消息隊列 Kafka 版資源實體,對應(yīng)一個集群。
VPC實例
僅提供專有網(wǎng)絡(luò)VPC接入點,只能通過專有網(wǎng)絡(luò)VPC訪問。
公網(wǎng)/VPC實例
提供公網(wǎng)接入點和專有網(wǎng)絡(luò)VPC接入點,可以通過公網(wǎng)訪問,也可以通過專有網(wǎng)絡(luò)VPC訪問。
升級大版本
跨版本升級,例如將云消息隊列 Kafka 版實例的版本從0.10.x升級至2.x。更多信息,請參見升級實例版本。
升級小版本
非跨版本升級,例如將云消息隊列 Kafka 版實例的版本從0.10升級至0.10.2,或者從0.10.2升級至0.10.2內(nèi)核優(yōu)化版。更多信息,請參見升級實例版本。
接入點
Producer或Consumer連接云消息隊列 Kafka 版時使用的地址,由Broker的IP地址和端口號拼接而成,格式為Broker的IP地址:端口號
,或由云消息隊列 Kafka 版實例域名和端口號拼接而成,格式為實例域名:端口號
。更多信息,請參見接入點對比。
消息
云消息隊列 Kafka 版中信息傳遞的載體。消息可以是網(wǎng)站的頁面訪問、服務(wù)器的日志,也可以是和CPU、內(nèi)存相關(guān)的系統(tǒng)資源信息,但對于云消息隊列 Kafka 版,消息就是一個字節(jié)數(shù)組。
消息保留時長
在磁盤容量充足的情況下,消息的最長保留時間。
- 磁盤容量不足(即磁盤水位達到85%)時,將提前刪除舊的消息,以確保服務(wù)可用性。
- 默認值為72小時,取值范圍為24小時~480小時。
最大消息大小
云消息隊列 Kafka 版能收發(fā)的消息的最大值。
- 消息的最大值上限為10 MB,不區(qū)分標準版實例和專業(yè)版實例。
- 修改該配置前,請確認修改值是否匹配生產(chǎn)和消費客戶端相應(yīng)配置。
發(fā)布/訂閱模型
一種異步的服務(wù)間通訊模型。發(fā)布者無需了解訂閱者的存在,直接將消息發(fā)送到特定的主題。訂閱者無需了解發(fā)布者的存在,直接從特定的主題接收消息。云消息隊列 Kafka 版支持發(fā)布/訂閱模型。更多信息,請參見云消息隊列 Kafka 版的發(fā)布/訂閱模型。
訂閱關(guān)系
Topic被Group訂閱的情況。云消息隊列 Kafka 版支持查看訂閱了指定Topic的在線Group的情況,非在線Group的情況無法查看。
Producer
向云消息隊列 Kafka 版發(fā)送消息的應(yīng)用。
Consumer
從云消息隊列 Kafka 版接收消息的應(yīng)用。
Group
一組具有相同Group ID的Consumer。當一個Topic被同一個Group的多個Consumer消費時,每一條消息都只會被投遞到一個Consumer,實現(xiàn)消費的負載均衡。通過Group,您可以確保一個Topic的消息被并行消費。
Topic
消息的主題,用于分類消息。
Topic引流
云消息隊列 Kafka 版集群橫向擴容完成后,使Topic流量重新均勻分布到擴容后的集群上的行為。更多信息,請參見Topic引流。
分區(qū)
云消息隊列 Kafka 版中的分區(qū)數(shù)是指一個主題(Topic)被劃分為的子數(shù)據(jù)集的數(shù)量。每個分區(qū)都是一個有序的消息隊列,可以獨立地進行讀寫操作。分區(qū)數(shù)的選擇通常根據(jù)吞吐量和并發(fā)性能的需求來決定。
副本數(shù)
云消息隊列 Kafka 版允許為每個分區(qū)創(chuàng)建多個副本,以提供數(shù)據(jù)冗余和高可用性。副本數(shù)是指每個分區(qū)存在的副本數(shù)量。副本數(shù)的選擇通常是根據(jù)可用性和容錯能力的需求來決定。較多的副本數(shù)可以提高可用性和數(shù)據(jù)冗余,但也會增加存儲和網(wǎng)絡(luò)開銷。默認單個分區(qū)有三個副本即副本因子為3。
分區(qū)副本數(shù)
分區(qū)副本數(shù)是分區(qū)實際存在的副本數(shù)量。它是分區(qū)數(shù)和副本因子之間的乘積。例如,如果一個主題(Topic)有10個分區(qū),每個分區(qū)有3個副本,那么該主題的分區(qū)副本數(shù)就是30。分區(qū)副本數(shù)影響著整個Kafka集群的存儲和吞吐量能力。較高的分區(qū)副本數(shù)可以提高故障容忍性和讀取性能,但也會增加網(wǎng)絡(luò)和存儲開銷。
位點
消息到達分區(qū)時被指定的序列號。
最小位點
分區(qū)的最小位點,即當前分區(qū)的首條消息的位點。如何查看當前分區(qū)的最小位點,請參見查看分區(qū)狀態(tài)。
最大位點
分區(qū)的最大位點,即當前分區(qū)的最新消息的位點。如何查看當前分區(qū)的最大位點,請參見查看分區(qū)狀態(tài)。
消費位點
分區(qū)被當前Consumer消費了的消息的最大位點。如何查看消費位點,請參見查看消費狀態(tài)。
最近消費時間
Group最近消費的消息被發(fā)布到云消息隊列 Kafka 版服務(wù)端的存儲時間。如果消費沒有堆積,那么這個時間接近發(fā)送時間。
堆積量
當前分區(qū)下的消息堆積總量,即最大位點減去消費位點的值。堆積量是一個關(guān)鍵指標,如果發(fā)現(xiàn)堆積量較大,則Consumer可能產(chǎn)生了阻塞,或者消費速度跟不上生產(chǎn)速度。此時需要分析Consumer的運行狀況,盡力提升消費速度。您可以清除所有堆積消息,從最大位點開始消費,或按時間點進行位點重置。具體操作,請參見重置消費位點。
Local存儲
使用原生Apache Kafka的ISR復制算法的存儲引擎。如果您有特殊需求,例如Compact、冪等、事務(wù)、分區(qū)順序消息等,建議您選擇Local存儲。更多信息,請參見存儲引擎對比。
云存儲
使用阿里云云盤算法的存儲引擎,充分發(fā)揮阿里云底層存儲優(yōu)勢,其彈性伸縮、可靠性、可用性、成本都要優(yōu)于Local存儲。因此,在絕大多數(shù)情況下,建議您使用云存儲。更多信息,請參見存儲引擎對比。
cleanup.policy
日志清理策略。當您選擇了Local存儲(僅專業(yè)版實例支持在創(chuàng)建Topic時將存儲引擎類型選擇為Local存儲,標準版暫不支持。)時,才需配置日志清理策略。云消息隊列 Kafka 版支持以下日志清理策略:
Delete:默認的消息清理策略。在磁盤容量充足的情況下,保留在最長保留時間范圍內(nèi)的消息;在磁盤容量不足時(一般磁盤使用率超過85%視為不足),將提前刪除舊消息,以保證服務(wù)可用性。
Compact:使用Kafka Log Compaction日志清理策略。Log Compaction清理策略保證相同Key的消息,最新的value值一定會被保留。主要適用于系統(tǒng)宕機后恢復狀態(tài),系統(tǒng)重啟后重新加載緩存等場景。例如,在使用Kafka Connect或Confluent Schema Registry時,需要使用Kafka Compact Topic存儲系統(tǒng)狀態(tài)信息或配置信息。
重要Compact Topic一般只用在某些生態(tài)組件中,例如Kafka Connect或Confluent Schema Registry,其他情況的消息收發(fā)請勿為Topic設(shè)置該屬性。具體信息,請參見云消息隊列 Kafka 版Demo庫。
普通消息
默認情況下,保證相同Key的消息分布在同一個分區(qū)中,且分區(qū)內(nèi)消息按照發(fā)送順序存儲。集群重啟或者宕機時,會導致極少量亂序。更多信息,請參見存儲引擎對比。
分區(qū)順序消息
默認情況下,保證相同Key的消息分布在同一個分區(qū)中,且分區(qū)內(nèi)消息按照發(fā)送順序存儲。集群宕機時,不會造成消息亂序。但是會出現(xiàn)部分分區(qū)發(fā)送消息失敗的情況,等到宕機機器重新上線后即可恢復正常。更多信息,請參見存儲引擎對比。
Connector
云消息隊列 Kafka 版的組件,用于云消息隊列 Kafka 版和其他阿里云服務(wù)之間的數(shù)據(jù)同步。更多信息,請參見Connector概述。
標簽
用于識別云消息隊列 Kafka 版資源。您可以將作用相同的云消息隊列 Kafka 版的資源歸類,便于搜索和資源聚合。更多信息,請參見標簽管理。
RAM
阿里云提供的管理阿里云用戶身份與阿里云資源訪問權(quán)限的服務(wù)。RAM只針對云消息隊列 Kafka 版控制臺和API操作,客戶端使用SDK收發(fā)消息與RAM無關(guān)。更多信息,請參見權(quán)限控制概述。
ACL
云消息隊列 Kafka 版提供的管理SASL用戶和客戶端使用SDK收發(fā)消息權(quán)限的服務(wù),和開源Apache Kafka保持一致。ACL只針對客戶端使用SDK收發(fā)消息,與云消息隊列 Kafka 版控制臺和API操作無關(guān)。更多信息,請參見權(quán)限控制概述。