[英]Purpose of statestore and changelog topic in kafka streams?
我有一個使用 stateStore(由 RocksDB 支持)的 kafka stream 應用程序。
stream 線程所做的就是從 kafka 主題中獲取數據並將數據放入狀態存儲中。 (還有其他線程從 statestore 讀取數據並進行業務邏輯處理)。
我觀察到它因為 stateStore 而創建了一個新的 kafka 主題“changelog”。
但我沒有明白“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.