簡體   English   中英

kafka 流中 statestore 和 changelog 主題的用途?

[英]Purpose of statestore and changelog topic in kafka streams?

我有一個使用 stateStore(由 RocksDB 支持)的 kafka stream 應用程序。

stream 線程所做的就是從 kafka 主題中獲取數據並將數據放入狀態存儲中。 (還有其他線程從 statestore 讀取數據並進行業務邏輯處理)。

我觀察到它因為 stateStore 而創建了一個新的 kafka 主題“changelog”。

但我沒有明白“changelog”kafka 主題的用途是什么?

  • 為什么需要它(更改日志)?
  • statestore 和“changelog”kafka 主題之間有什么關系?
  • 誰將數據放入這個主題? (“變更日志”)

這個問題的簡短回答是實現容錯。

詳情

changelog使 Kafka Streams 應用程序中的 State 存儲具有容錯能力。 當您的應用程序將更多數據攝取到 state 存儲區時,它會被推送到changelog主題,因此如果運行應用程序的節點出現故障,那么changelog主題將用於加載具有最新 Z9ED39E2EA9319286B76A 的 state 存儲庫

每個應用程序線程或實例都有自己的changelog主題分區,以便在應用程序失敗后重新啟動后,每個實例都可以重新創建它的 state。

當對 state 存儲進行更新時,Kafka Streams 會自動將數據推送到主題。

我建議閱讀 Kafka Definitive Guide 的第 11 章——它包含對 Kafka Streams 架構和 stream 處理模式的很好解釋。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM