kafka菜鳥(niǎo)教程 如何搭建kafka?該如何學(xué)習(xí)kafka?
如何搭建kafka?該如何學(xué)習(xí)kafka?百度很多一致性:如果一條消息對(duì)消費(fèi)者是可見(jiàn)的,那么即使領(lǐng)導(dǎo)掛斷了,新領(lǐng)導(dǎo)上的數(shù)據(jù)還是可見(jiàn)的。ISR(同步副本)是由zookeeper中的負(fù)責(zé)人維護(hù)的副本列表。
如何搭建kafka?該如何學(xué)習(xí)kafka?
百度很多
一致性:如果一條消息對(duì)消費(fèi)者是可見(jiàn)的,那么即使領(lǐng)導(dǎo)掛斷了,新領(lǐng)導(dǎo)上的數(shù)據(jù)還是可見(jiàn)的。
ISR(同步副本)是由zookeeper中的負(fù)責(zé)人維護(hù)的副本列表。該列表存儲(chǔ)所有副本的跟隨者節(jié)點(diǎn)id,這些副本使消息與引導(dǎo)者副本保持同步。ISR冗余備份機(jī)制的核心邏輯是圍繞HW值和Leo值。
Leo(last end offset)log end offset,記錄副本對(duì)象的基礎(chǔ)日志文件中下一條消息的位移值。
HW(高水印),高水印值。任何復(fù)制對(duì)象的HW值不得大于其Leo值,所有小于或等于HW值的消息都被視為“已提交”或“已備份”。使用者只能使用提交的消息,HW之后的數(shù)據(jù)對(duì)使用者不可見(jiàn)。
卡夫卡只能保證分區(qū)的內(nèi)部順序,不能保證整個(gè)主題的順序。
因?yàn)橐粋€(gè)主題可以有多個(gè)分區(qū),卡夫卡只能保證分區(qū)的內(nèi)部順序。可能需要排序的數(shù)據(jù)被分配到不同的分區(qū),導(dǎo)致處理混亂
解決方案
1。只能用一個(gè)分區(qū)設(shè)置主題
2。根據(jù)業(yè)務(wù)需要,需要排序的數(shù)據(jù)要指定為同一個(gè)分區(qū)
3。根據(jù)業(yè)務(wù)需要,如相同的順序,使用相同的密鑰可以保證它被分配到相同的分區(qū)
無(wú)序場(chǎng)景2
對(duì)于相同的業(yè)務(wù),在進(jìn)入相同的消費(fèi)群體后,使用多線程處理消息會(huì)導(dǎo)致無(wú)序
解決方案
消費(fèi)群體創(chuàng)建的數(shù)量相等內(nèi)存組根據(jù)線程數(shù)列。對(duì)于需要排序的一系列業(yè)務(wù)數(shù)據(jù),根據(jù)密鑰或業(yè)務(wù)數(shù)據(jù)將它們放入同一個(gè)內(nèi)存隊(duì)列中,然后線程將它們從相應(yīng)的內(nèi)存隊(duì)列中取出并進(jìn)行操作