1.生產者定期向主題傳送訊息。
2.kafka**儲存為該特定主題配置的分割槽中的所有訊息。 它確保訊息在分割槽之間平等共享。 如果生產者傳送兩個訊息並且有兩個分割槽,kafka將在第一分區中儲存乙個訊息,在第二分割槽中儲存第二訊息。
3.消費者訂閱特定主題。
4.一旦消費者訂閱主題,kafka將向消費者提供主題的當前偏移,並且還將偏移儲存在zookeeper系綜中。
5.消費者將定期請求kafka(如100 ms)新訊息。
6.一旦kafka收到來自生產者的訊息,它將這些訊息**給消費者。
7.消費者將收到訊息並進行處理。
8.一旦訊息被處理,消費者將向kafka**傳送確認。
9.一旦kafka收到確認,它將偏移更改為新值,並在zookeeper中更新它。 由於偏移在zookeeper中維護,消費者可以正確地讀取下一封郵件,即使在伺服器暴力期間。
10.以上流程將重複,直到消費者停止請求。
11.消費者可以隨時回退/跳到所需的主題偏移量,並閱讀所有後續訊息。
在佇列訊息傳遞系統而不是單個消費者中,具有相同組id 的一組消費者將訂閱主題。 簡單來說,訂閱具有相同 group id 的主題的消費者被認為是單個組,並且訊息在它們之間共享。
1.生產者以固定間隔向某個主題傳送訊息。
2.kafka儲存在為該特定主題配置的分割槽中的所有訊息,類似於前面的方案。
3.單個消費者訂閱特定主題,假設 topic-01 為 group id 為 group-1 。
4.kafka以與發布 - 訂閱訊息相同的方式與消費者互動,直到新消費者以相同的組id 訂閱相同主題 topic-01 1 。
5.一旦新消費者到達,kafka將其操作切換到共享模式,並在兩個消費者之間共享資料。 此共享將繼續,直到使用者數達到為該特定主題配置的分割槽數。
6.一旦消費者的數量超過分割槽的數量,新消費者將不會接收任何進一步的訊息,直到現有消費者取消訂閱任何乙個消費者。 出現這種情況是因為kafka中的每個消費者將被分配至少乙個分割槽,並且一旦所有分割槽被分配給現有消費者,新消費者將必須等待。
7.此功能也稱為使用者組。 同樣,kafka將以非常簡單和高效的方式提供兩個系統中最好的。
kafka的乙個關鍵依賴是apache zookeeper,它是乙個分布式配置和同步服務。 zookeeper是kafka**和消費者之間的協調介面。 kafka伺服器通過zookeeper集群共享資訊。 kafka在zookeeper中儲存基本元資料,例如關於主題,**,消費者偏移(佇列讀取器)等的資訊。
由於所有關鍵資訊儲存在zookeeper中,並且它通常在其整體上覆制此資料,因此kafka**/ zookeeper的故障不會影響kafka集群的狀態。 kafka將恢復狀態,一旦zookeeper重新啟動。 這為kafka帶來了零停機時間。 kafka**之間的領導者選舉也通過使用zookeeper在領導者失敗的情況下完成。
Struts工作流程的學習筆記
1.首先是由客戶端發起乙個http請求到伺服器,伺服器由actionservlet接收。3.接著建立對應的相關actionform物件,如果不存在,就建立乙個新的物件,並儲存客戶提交的表單資料到form中。如果存在,直接覆蓋掉form中的資料。4.根據配置資訊決定是否需要驗證,如果需要則呼叫acti...
Kafka工作流程及檔案儲存機制
kafka 中訊息是以 topic 進行分類的,生產者生產訊息,消費者消費訊息,都是面向 topic的。topic 是邏輯上的概念,而 partition 是物理上的概念,每個 partition 對應於乙個 log 文 件,該 log 檔案中儲存的就是 producer 生產的資料。produce...
Kafka工作流程及檔案儲存機制
一 基礎架構 1 kafka中訊息是以topic進行分類的,生產者生產訊息,消費者消費訊息,都是面向topic的。2 topic是邏輯上的概念,而partition是物理上的概念 3 每個partition對應於乙個log檔案,該log檔案中儲存的就是producer生產的資料 log檔案的儲存位置...