欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

kafka-consumer-分配策略-創(chuàng)新互聯(lián)

目錄

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有保康免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

分區(qū)的分配及再平衡

1 分區(qū)分配策略之Range

2?分區(qū)分配策略之RoundRobin

3 分區(qū)分配策略之Sticky


分區(qū)的分配及再平衡

一個(gè)consumer group中有多個(gè)consumer組成,一個(gè)topic有多個(gè)partition組成,現(xiàn)在的問題是,到底由哪個(gè)onsumer來消費(fèi)哪個(gè)partition的數(shù)據(jù)?

Kafka有四種主流的分區(qū)分配策略: Range、RoundRobin、Sticky、CooperativeSticky。
可以通過配置參數(shù)partition.assignment.strategy,修改分區(qū)的分配策略。默認(rèn)策略是Range + CooperativeSticky。Kaka可以同時(shí)使用多個(gè)分區(qū)分配策略。

發(fā)生分配的過程在消費(fèi)者組初始化過程中的第4步leader消費(fèi)者制定消費(fèi)方案和第7步中再平衡的過程中,具體初始化流程在此文章中有記錄kafka-consumer-基本介紹(理論)_SeaDhdhdhdhdh的博客-博客

1 分區(qū)分配策略之Range

Range是對(duì)單個(gè)topic而言的。

首先對(duì)同一個(gè)topic里面的分區(qū)按照序號(hào)進(jìn)行排序,并對(duì)消費(fèi)者按照字母順序進(jìn)行排序。
假如現(xiàn)在有7個(gè)分區(qū),3個(gè)消費(fèi)者,排序后的分區(qū)將會(huì)是0,1,2,3,4,5,6;消費(fèi)者排序完之后將會(huì)是C0,C1,C2。

通過 partitions數(shù)/consumer 數(shù)來決定每個(gè)消費(fèi)者應(yīng)該消費(fèi)幾個(gè)分區(qū)。如果除不盡,那么前面幾個(gè)消費(fèi)者將會(huì)多消費(fèi)1個(gè)分區(qū)。

例如,7/3=2余1,除不盡,那么消費(fèi)者C0便會(huì)多消費(fèi)1個(gè)分區(qū)。8/3=2余2,除不盡,那么C0和C1分別多消費(fèi)一個(gè)。

注意:如果只是針對(duì)1個(gè)topic而言,C0消費(fèi)者多消費(fèi)1個(gè)分區(qū)影響不是很天。但是如果有N多個(gè)topic,那么針對(duì)每個(gè)topic,消費(fèi)者C0都將多消費(fèi)1個(gè)分區(qū),topic越多,C0消費(fèi)的分區(qū)會(huì)比其他消費(fèi)者明顯多消費(fèi)N個(gè)分區(qū)。除此之外, 如果再C0消費(fèi)者掛掉之后生產(chǎn)者發(fā)送消息(掛掉以后45秒以內(nèi)),那么本來有C0消費(fèi)的0,1,2分區(qū)會(huì)重新分配給下一個(gè)序號(hào)的消費(fèi)者(C1)消費(fèi)。此時(shí)生產(chǎn)者再次發(fā)送消息(掛掉45秒以后)會(huì)觸發(fā)再平衡,將剩余兩個(gè)消費(fèi)者根據(jù)range策略再次進(jìn)行分配。
容易產(chǎn)生數(shù)據(jù)傾斜!

2?分區(qū)分配策略之RoundRobin

RoundRobin針對(duì)集群中所有Topic而言。

RoundRobin 輪詢分區(qū)策略,是把所有的partition和所有的consumer都列出來,然后按照hashcode進(jìn)行排序,最后通過輪詢算法來分配partition給到各個(gè)消費(fèi)者。

修改分區(qū)策略代碼:

//設(shè)置分區(qū)分配策略
properties.put(ConsumerConfig.PARTITION_ASSIGIIEINTLSTRATEGY_CONFI, "org.apache.kafka.clients.consumer.RoundRotinassignor");

注意測(cè)試時(shí)所有的消費(fèi)者都要配置分配策略。

如果再C0消費(fèi)者掛掉之后生產(chǎn)者發(fā)送消息(掛掉以后45秒以內(nèi)),那么本來有C0消費(fèi)的0,1,2分區(qū)會(huì)重新分配給其他消費(fèi)者(C1,C2)消費(fèi)。此時(shí)生產(chǎn)者再次發(fā)送消息(掛掉45秒以后)會(huì)觸發(fā)再平衡,將剩余兩個(gè)消費(fèi)者根據(jù)RoundRobin策略再次進(jìn)行分配。

3 分區(qū)分配策略之Sticky

粘性分區(qū)定義:可以理解為分配的結(jié)果帶有“粘性的”。即在執(zhí)行一次新的分配之前,考慮上一次分配的結(jié)果,盡量少的調(diào)整分配的變動(dòng),可以節(jié)省大量的開銷。
粘性分區(qū)是Kafka 從 0.11.x版本開始引入這種分配策略,首先會(huì)盡量均衡的放置分區(qū)到消費(fèi)者上面,在出現(xiàn)同一消費(fèi)者組內(nèi)消費(fèi)者出現(xiàn)問題的時(shí)候,會(huì)盡量保持原有分配的分區(qū)不變化。

//設(shè)置分區(qū)分配策略
properties.put(ConsumerConfig.PARTITION_ASSIGIIEINTLSTRATEGY_CONFI, "org.apache.kafka.clients.consumer.StickyAssignor");

如果再C0消費(fèi)者掛掉之后生產(chǎn)者發(fā)送消息(掛掉以后45秒以內(nèi)),那么本來有C0消費(fèi)的0,1,2分區(qū)會(huì)重新分配給其他消費(fèi)者(C1,C2)消費(fèi)。此時(shí)生產(chǎn)者再次發(fā)送消息(掛掉45秒以后)會(huì)觸發(fā)再平衡,將剩余兩個(gè)消費(fèi)者根據(jù)sticky策略再次進(jìn)行分配。

注意:sticky和RoundRobin的不同點(diǎn)在于:RoundRobin是輪詢分配,分配到不同消費(fèi)者的分區(qū)會(huì)有一定的規(guī)律,sticky更重于均勻分配,分配到不同消費(fèi)者的分區(qū)不一定會(huì)有規(guī)律。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)名稱:kafka-consumer-分配策略-創(chuàng)新互聯(lián)
分享鏈接:http://chinadenli.net/article48/edpep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃電子商務(wù)響應(yīng)式網(wǎng)站外貿(mào)建站服務(wù)器托管微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化