一.為什么要有分區(qū)分配策略
一個consumer group有多個consumer,一個topic有多個partition,所以就會設計到分區(qū)分配的問題,需要確定哪些分區(qū)由哪些消費者消費。
二.什么時候會執(zhí)行分區(qū)分配策略
當消費者組中的消費者發(fā)生變化,減少或者增加的時候,就會執(zhí)行分區(qū)分配策略,需要重新洗牌。
三.分區(qū)分配策略有哪些方案
分區(qū)分配策略主要有兩種,第一種是Range范圍分區(qū),按照主題劃分的,是系統(tǒng)默認的方案。Range范圍分區(qū)是針對每個topic而言。首先是把partition和consumer都拉出來分別進行排序,然后用partition的數(shù)量除以consumer的數(shù)量,以次來決定哪個范圍的分區(qū)由哪個消費者消費,如果除不盡有出來的,那么前面的消費者都會多消費一個分區(qū)。如果topic很多的話,前面的消費者就會多很多分區(qū),會造成消費者消費不對等,這就是Range分區(qū)的弊端。文章來源:http://www.zghlxwxcb.cn/news/detail-567081.html
第二種是RoundRobin輪詢分區(qū)。是按照消費者組劃分的。首先是把所有主題的partition和consumer都列出來,算他們的hash值進行排序,最后通過輪詢的算法將partition發(fā)給每個消費者。但是這個會有問題,比如一個消費者組中有A和B兩個消費者,A想要消費topicA這個主題,B想要消費topicB這個主題,每個主題都有三個分區(qū),通過輪詢的方法把分區(qū)hash打散了,就會出現(xiàn)A消費了topicB,B消費了topicA的情況,會有問題。所以RoundRobin只適合每個消費者訂閱的主題一致文章來源地址http://www.zghlxwxcb.cn/news/detail-567081.html
到了這里,關于kafka消費者組的分區(qū)分配策略的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!