1、metaq如何做集群坞嘀?
broker做集群躯护。使用相同的server.ini文件,修改brokerId即可丽涩,不需要重啟productor棺滞,其他broker裁蚁,以及消費(fèi)者,他們會(huì)自動(dòng)感知到新加入的broker
消費(fèi)者做集群
多個(gè)服務(wù)器可以組成一個(gè)集群來(lái)消費(fèi)同一個(gè)topic的消息继准,需要這些消費(fèi)者要用相同的groupid
2枉证、metaq如何做failover(故障轉(zhuǎn)移)?
當(dāng)某個(gè)broker重啟或者不能提供服務(wù)的時(shí)候移必,生產(chǎn)者可以通過(guò)zk來(lái)感知到這個(gè)變化室谚,將失效的分區(qū)移除,從而做到failover崔泵,但是故障感知會(huì)有一點(diǎn)延遲秒赤,可能在這個(gè)期間消息會(huì)發(fā)送失敗
當(dāng)消費(fèi)集群中的某個(gè)消費(fèi)者掛了,其他消費(fèi)者會(huì)感知到憎瘸,并重新進(jìn)行負(fù)載
3入篮、負(fù)載均衡
生產(chǎn)者負(fù)載。生產(chǎn)者啟動(dòng)的時(shí)候會(huì)從zk上獲取topic對(duì)應(yīng)的broker和分區(qū)列表含思,默認(rèn)的負(fù)載均衡策略是輪詢崎弃,也可以自定義負(fù)載均衡策略
消費(fèi)者負(fù)載。消費(fèi)者負(fù)載策略如下:
每個(gè)分區(qū)對(duì)同一個(gè)group只能掛載一個(gè)消費(fèi)者
如果同一個(gè)group下的消費(fèi)者數(shù)量大于分區(qū)數(shù)含潘,多余的消費(fèi)者不參與消費(fèi)
如果同一個(gè)group下的消費(fèi)者數(shù)量小于分區(qū)數(shù)饲做,有的消費(fèi)者需要承擔(dān)額外的消費(fèi)任務(wù)
4、消費(fèi)者分組 group
同一個(gè)topic下的消息可以由多組消費(fèi)組來(lái)消費(fèi)遏弱,不同的消費(fèi)者的處理邏輯和業(yè)務(wù)處理是不同的盆均,消費(fèi)速度和消費(fèi)進(jìn)度也是不一樣的。同一個(gè)分組的消費(fèi)者都只能消費(fèi)部分消息漱逸,不會(huì)重復(fù)消費(fèi)泪姨,不同分組的消費(fèi)者可以重復(fù)消費(fèi)同一個(gè)topic的消息。
5饰抒、可靠性保證
生產(chǎn)者發(fā)送消息的可靠性保證
生產(chǎn)者發(fā)送消息會(huì)等待broker的響應(yīng)結(jié)果肮砾,返回成功或失敗的標(biāo)志,如果成功說(shuō)明該消息已經(jīng)接收到并存入磁盤(pán)袋坑,這個(gè)過(guò)程是個(gè)同步的過(guò)程仗处,如果返回失敗,生產(chǎn)者會(huì)重發(fā)這個(gè)消息枣宫,所以這當(dāng)前一條消息已經(jīng)存入磁盤(pán)但是因?yàn)榫W(wǎng)絡(luò)的原因?qū)е聸](méi)有返回響應(yīng)婆誓,有可能引起消息的重復(fù)。
broker存儲(chǔ)消息的可靠性保證
broker收到生產(chǎn)者發(fā)過(guò)來(lái)的消息后也颤,校驗(yàn)后會(huì)存入磁盤(pán)洋幻,寫(xiě)入成功后才返回響應(yīng)。并且broker會(huì)在收到1000消息或每隔10s鐘自動(dòng)刷新到磁盤(pán)中
6翅娶、消費(fèi)者消費(fèi)消息的可靠性
消費(fèi)者是一條接一條的消費(fèi)消息文留,只有前一條消息消費(fèi)成功才會(huì)消費(fèi)下一條消息好唯,如果消費(fèi)失敗會(huì)重試5次,如果還是失敗會(huì)將這條消息存入本地磁盤(pán)燥翅,然后又后臺(tái)線程繼續(xù)重試渠啊,主線程繼續(xù)往后走。另外消費(fèi)者消費(fèi)的可靠性和offset存儲(chǔ)緊密相關(guān)权旷,offset記錄消費(fèi)的偏移量替蛉,如果消費(fèi)者消費(fèi)成功后沒(méi)有能成功的offset存起來(lái),那么同一個(gè)group的其他消費(fèi)者就會(huì)再次消費(fèi)這個(gè)消息拄氯,從而造成消息重復(fù)躲查。offset的存儲(chǔ)可以存在zk、mysql译柏、文件中镣煮,如果存在zk中,zk的可靠性就決定了metaq消費(fèi)消息的可靠性
7鄙麦、消息順序的保證
metaq消費(fèi)者按照消息存入磁盤(pán)的先后順序來(lái)消費(fèi)消息典唇,