producer:生產(chǎn)者,生產(chǎn)并發(fā)送消息的一方。
consumer:消費(fèi)者,接收消費(fèi)消息的一方。
topic:一類消息的集合。在kafka中,消息以主題為單位進(jìn)行歸類,producer負(fù)責(zé)將消息發(fā)送到指定的主題,而consumer負(fù)責(zé)訂閱主題并進(jìn)行消費(fèi)。
kafka中的一條消息其實(shí)就是一個包含<topic,partition,offset>消息三元組。
broker:服務(wù)代理節(jié)點(diǎn)。對于Kafka而言,Broker可以簡單地看作一個獨(dú)立的Kafka服務(wù)節(jié)點(diǎn)或Kafka服務(wù)實(shí)例。一個kafka集群中會有多個broker節(jié)點(diǎn)。一個broker可以容納多個 topic。
partition:topic是一個邏輯上的概念,它還可以細(xì)分為多個分區(qū),一個分區(qū)只屬于單個topic,很多時候也會把分區(qū)稱為主題分區(qū)(Topic-Partition)。同一主題下的不同分區(qū)包含的消息是不同的,分區(qū)在存儲層面可以看作一個可追加的日志(Log)文件,消息在被追加到分區(qū)日志文件的時候都會分配一個特定的偏移量(offset)。offset是消息在分區(qū)中的唯一標(biāo)識,Kafka通過它來保證消息在分區(qū)內(nèi)的順序性,不過offset并不跨越分區(qū),也就是說,Kafka保證的是分區(qū)有序而不是topic有序。
producer在發(fā)送消息時候,具體發(fā)送到哪個pritition,有以下規(guī)則確定:
kafka默認(rèn)輪詢規(guī)則;
producer指定key,根據(jù)key的hash值,分配partition;
producer自定義規(guī)則;
replication:partition的副本,從leader replica同步數(shù)據(jù),當(dāng)kafka服務(wù)掛了之后,防止數(shù)據(jù)丟失。副本的數(shù)量不能超過broker的數(shù)量,否則創(chuàng)建主題時會失敗。
領(lǐng)導(dǎo)者副本(leaderreplica):響應(yīng)客戶端發(fā)來的消息寫入和消息消費(fèi)請求。
追隨者副本(followerreplica):從領(lǐng)導(dǎo)者副本同步數(shù)據(jù),不響應(yīng)客戶端的讀寫請求。
segment:partition物理上由多個segment組成。segment中存儲了索引和log數(shù)據(jù)。
offset:每個partition都由一系列有序的、不可變的消息組成,這些消息被連續(xù)的追加到partition中。partition中的每個消息都有一個連續(xù)的序列號叫做offset,用于partition唯一標(biāo)識一條消息。
consumer group:kafka消費(fèi)者組,一個組內(nèi)可以有多個消費(fèi)者,一個partition的消息只能被同一個組內(nèi)的一個消費(fèi)者消費(fèi)。多個消費(fèi)者組之間互相不影響。
二、kafka原理圖1.kafka基本概念圖示
? 如圖所示,一個producer,兩個broker,一個topicA(兩個partition,兩個副本),一個消費(fèi)者組(兩個消費(fèi)者)。
如上圖所示,topic1中的兩個partition分別在兩個broker上面,其中兩個副本也分布在兩個broker上面,并且leader partition和follow partition分別在不同的broker上面,這樣的目的是保證了kafka的高可用性,當(dāng)任意一個broker掛掉之后,kafka仍然保證消息不丟失,服務(wù)的可用性。
? leader partition負(fù)責(zé)提供讀寫服務(wù),當(dāng)leader partition掛掉之后,kafka會從follow partition中選舉新的leader partition來提供讀寫服務(wù)。
2.partition結(jié)構(gòu)圖
? partition中又細(xì)分為更小的存儲單元segment,segment中存儲索引和log數(shù)據(jù),數(shù)據(jù)在partition追加,保證kafka消息在partition中的有序性。
? segment的設(shè)計(jì)結(jié)構(gòu),在kafka中消息比較多的時候,清理起來效率更高,比單獨(dú)操作一個更大的partition文件要方便的多,所以partition中又細(xì)分了segment存儲單元。
在kafka按照目錄下,進(jìn)入到bin目錄下執(zhí)行如下常用命令:
#進(jìn)入到bin目錄
cd /kafka/bin
#創(chuàng)建/刪除topic
sh kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 1 --partitions 1
sh kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
#生產(chǎn)數(shù)據(jù)
sh kafka-console-producer.sh --broker-list localhost:9092 --topic test
#消費(fèi)數(shù)據(jù)
sh kafka-console-consumer.sh --bootstrap-server localhost:9092?--topic test
sh kafka-console-consumer.sh --bootstrap-server localhost:9092?--topic test?--from-beginning
#查看消費(fèi)組情況
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092? --group group_test --describe
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
新聞標(biāo)題:kafka學(xué)習(xí)之基本概念-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.chinadenli.net/article20/dcsgjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、面包屑導(dǎo)航、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容