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