1.HighLevelApi
High Level Api是多線程的應(yīng)用程序,以Topic的Partition數(shù)量為中心。消費(fèi)的規(guī)則如下:
一個(gè)partition只能被同一個(gè)ConsumersGroup的一個(gè)線程所消費(fèi).
線程數(shù)小于partition數(shù),某些線程會(huì)消費(fèi)多個(gè)partition.
線程數(shù)等于partition數(shù),一個(gè)線程正好消費(fèi)一個(gè)線程.
當(dāng)添加消費(fèi)者線程時(shí),會(huì)觸發(fā)rebalance,partition的分配發(fā)送變化.
同一個(gè)partition的offset保證消費(fèi)有序,不同的partition消費(fèi)不保證順序.
關(guān)于與ZK的幾個(gè)參數(shù)意思解釋
zookeeper.connect: ZK連接。
group.id: Consumer消費(fèi)ID。
zookeeper.session.timeout.ms: kafka節(jié)點(diǎn)與ZK會(huì)話的超時(shí)時(shí)間。
zookeeper.sync.time.ms: zk的follower與leader的同步時(shí)間間隔。
auto.commit.interval.ms: Consumer offset自動(dòng)提交給Zookeeper的時(shí)間。
Note that since the commit frequency is time based instead of # of messages consumed, if an error occurs between updates to ZooKeeper on restart you will get replayed m