真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kafka如何選擇合適的分區(qū)數(shù)

本篇文章給大家分享的是有關(guān)Kafka如何選擇合適的分區(qū)數(shù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)張北,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

我們經(jīng)常會(huì)面臨這樣的問(wèn)題,在確定某個(gè)topic下應(yīng)該設(shè)置多少分區(qū)數(shù),有時(shí)并不知道應(yīng)該如何設(shè)置,如何評(píng)估等?;蛘邉e人問(wèn)你當(dāng)前kafka集群中,具體的業(yè)務(wù)topic中分區(qū)數(shù)是多少,是如何知道需要多少分區(qū)或怎么選擇比較適合的分區(qū)數(shù)。

1.結(jié)合業(yè)務(wù)場(chǎng)景和非業(yè)務(wù)條件

那么我們應(yīng)該如何選擇合適的分區(qū)數(shù)呢?

具體的業(yè)務(wù)具體分析。

但是前期我們可以根據(jù)這些條件:實(shí)際業(yè)務(wù)場(chǎng)景(消息總量,消息生產(chǎn)或消費(fèi)頻率,要求的吞吐量等)、軟件條件、硬件條件、負(fù)載情況等,進(jìn)行大致的評(píng)估我們可以設(shè)置topic多少分區(qū)數(shù)。

2.使用壓測(cè)工具,得出最佳分區(qū)數(shù)

kafka官方也提供了腳本方便我們針對(duì)我們的kafka集群做測(cè)試,我們可以測(cè)試當(dāng)前提供的硬件條件進(jìn)行壓測(cè),得出當(dāng)前機(jī)器環(huán)境到底能支持多少分區(qū)數(shù),從而達(dá)到盡量最優(yōu)的方案。

生產(chǎn)者性能測(cè)試腳本:kafka-producer-perf-test.sh

消費(fèi)者性能測(cè)試腳本:kafka-consumer-perf-test.sh

設(shè)置好topic的某個(gè)分區(qū)數(shù),之后我們可以選擇不同的參數(shù):比如消息發(fā)送總量、單條消息大小、吞吐量、acks、消費(fèi)線程數(shù)等等,這樣壓測(cè)之后就能得出一份測(cè)試報(bào)告,報(bào)告包含的數(shù)據(jù)有:50%/90%/95%/99%的消息處理耗時(shí)、平均處理耗時(shí)、每秒消息發(fā)送吞吐量、每秒拉取的消息的字節(jié)大小/消息數(shù)量、消費(fèi)總數(shù)、再平衡時(shí)間、按消息計(jì)數(shù)/消息大小計(jì)算的吞吐量等等。

合適的增加分區(qū)數(shù)是可以提高吞吐量,但超過(guò)一定的閾值之后,吞吐量也會(huì)隨之下降。如果生產(chǎn)上對(duì)吞吐量有一定的要求,可以在生產(chǎn)機(jī)器硬件條件下進(jìn)行壓測(cè),得出適合你的最優(yōu)分區(qū)數(shù)。

3.吞吐量越高并不會(huì)一直與分區(qū)數(shù)有關(guān)

對(duì)kafka生產(chǎn)者而言,數(shù)據(jù)寫(xiě)入每個(gè)分區(qū)是可以并行進(jìn)行的。對(duì)kafka消費(fèi)者而言,每個(gè)分區(qū)只能給一個(gè)消費(fèi)者線程消費(fèi),所以消費(fèi)組的消費(fèi)并行度依賴于分區(qū)數(shù)。這樣看來(lái)好像分區(qū)數(shù)越多,理論上吞吐量應(yīng)該越高。

但是,事實(shí)真的是這樣嗎?

消息中間件kafka的吞吐量并不只是跟分區(qū)有關(guān)。

消息寫(xiě)入(生產(chǎn))的吞吐量與這些有關(guān):消息大小、消息壓縮方式、消息發(fā)送方式(同步或異步)、消息確認(rèn)類型acks、副本因子等。

同樣,消息消費(fèi)的吞吐量與業(yè)務(wù)邏輯消費(fèi)速度等有關(guān)。

4.分區(qū)數(shù)與操作系統(tǒng)有關(guān)

分區(qū)數(shù)也不能無(wú)限制的增加,因?yàn)槠湔加昧宋募枋龇M(jìn)程可支配的文件描述符是有限的。

一般如果要設(shè)置比較大的分區(qū)數(shù),要特別留意是否超過(guò)系統(tǒng)的最的大描述符文件。雖然可以通過(guò)改系統(tǒng)配置,但是應(yīng)盡量避免這種,畢竟文件句柄也是有開(kāi)銷的。

5.注意消息寫(xiě)入分區(qū)策略

我們知道消費(fèi)寫(xiě)入哪個(gè)分區(qū),默認(rèn)或者有些會(huì)根據(jù)Key計(jì)算其應(yīng)寫(xiě)入哪個(gè)分區(qū),這個(gè)時(shí)候就要考慮與Key較強(qiáng)關(guān)聯(lián)的應(yīng)用是否會(huì)影響你的使用場(chǎng)景。

比如有些應(yīng)用場(chǎng)景可能只是要求某個(gè)分區(qū)內(nèi)消息有序,如果一旦調(diào)整分區(qū)數(shù),就有可能影響這種使用場(chǎng)景。

所以我們一般會(huì)盡量配置較好的分區(qū)數(shù),盡量滿足未來(lái)2年內(nèi)目標(biāo)的吞吐量。

如果與Key關(guān)聯(lián)較弱的應(yīng)用,我們可以在未來(lái)根據(jù)實(shí)際情況進(jìn)行增加分區(qū)數(shù)。

6.分區(qū)數(shù)會(huì)影響系統(tǒng)可用性

Kafka通過(guò)多副本機(jī)制實(shí)現(xiàn)集群高可用和高可靠,每個(gè)分區(qū)至少會(huì)有一個(gè)或多個(gè)副本,每個(gè)副本會(huì)存在于不同的Broker節(jié)點(diǎn),并且只有l(wèi)eader副本對(duì)外提供服務(wù)。

kafka集群內(nèi)部所有副本都采用了自動(dòng)化的方式進(jìn)行管理,所有副本的數(shù)據(jù)都能保持一定程度上的同步。當(dāng)Broker發(fā)生故障,leader副本所在的Broker節(jié)點(diǎn)上的所有分區(qū)將處于暫不可用狀態(tài)。

此時(shí)集群內(nèi)follower副本就會(huì)重新進(jìn)行選舉出leader副本,整個(gè)過(guò)程由kafka控制器負(fù)責(zé),并且集群上的分區(qū)會(huì)存在暫時(shí)不可用,并且如果分區(qū)數(shù)過(guò)多,這個(gè)不可用的時(shí)間窗口就會(huì)更大。

7.分區(qū)數(shù)越多也會(huì)增加耗時(shí)

分區(qū)數(shù)越多,kafka在正常啟動(dòng)和關(guān)閉的耗時(shí)也會(huì)變得越長(zhǎng)。

與此同時(shí),主題分區(qū)數(shù)也會(huì)在日志清理時(shí)增加耗時(shí),也會(huì)在刪除時(shí)耗費(fèi)更多的時(shí)間。在舊版本上是比較明顯,在新版本已經(jīng)得到了改善。

8.分區(qū)數(shù)理論參考設(shè)置值

一般情況下,分區(qū)數(shù)可以配置為Broker節(jié)點(diǎn)數(shù)的整數(shù)倍,比如:Broker節(jié)點(diǎn)是3,那么可以設(shè)置分區(qū)數(shù)為3、6、9。

但是在broker節(jié)點(diǎn)數(shù)龐大的情況下,比如大幾十、上百、上千則不合適,一般這種也是比較極少的吧,除非有BAT的量級(jí)。如果需要可以在選定分區(qū)數(shù)時(shí)可以進(jìn)一步考慮引入機(jī)架等參考因素。

9.實(shí)際情況具體分析,切勿盲目

最后,當(dāng)你后期增加分區(qū)數(shù)時(shí),要注意是否有必要或合理。筆者曾見(jiàn)過(guò)這種場(chǎng)景:將日志消費(fèi)后寫(xiě)入es,但是存在消息堆積嚴(yán)重,于是將分區(qū)數(shù)從6個(gè)增加到12個(gè),此時(shí)對(duì)堆積情況并沒(méi)有很好得到改善,甚至出現(xiàn)更差(比如同一日志文件日志數(shù)據(jù)出現(xiàn)不連續(xù),即有序),最后只能刪掉主題,重新設(shè)置原來(lái)的分區(qū)數(shù)。

因?yàn)橄到y(tǒng)的主要瓶頸在于es的寫(xiě)入能力,造成消費(fèi)速度慢,從而引起海量日志消息的堆積。所以分析出當(dāng)前的主要問(wèn)題(瓶頸等)很重要,切記不能隨意或盲目設(shè)置分區(qū)數(shù)。

以上就是Kafka如何選擇合適的分區(qū)數(shù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱:Kafka如何選擇合適的分區(qū)數(shù)
URL鏈接:http://weahome.cn/article/ijpjij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部