[英]Kafka Streams - shared changelog topic
這是一個后續問題: Kafka Streams-如何縮放Kafka存儲生成的changelog主題
假設我們假設流使用者在存儲數據之前需要進行一些轉換(通過v-> k而不是k-> v進行索引)。
最后,目標是每個使用者都需要將完整的轉換記錄(v-> k)集合存儲在rockDB中。 我知道上游的另一個處理器可以根據k-> v來產生v-> k,最終使用者可以簡單地從globaltable中實現新主題。 但是,如果流水線全部由最終用戶完成,會發生什么呢?
KTable<Key, Value> table = builder.table(topic);
table.groupBy((k, v) -> KeyValue.pair(v, k)).reduce((newValue, aggValue) -> newValue,
(newValue, aggValue) -> null,
Materialized.as(STORE_NAME));
在這種情況下,哪種選擇是最佳實踐或最佳選擇(如果我的假設不成立,請讓我正確)?
對於Kafka Streams, applicationId == groupId
。 因此,(2)是不可能的。
對於(3),將對該狀態進行分片/分區,並且每個實例僅具有該狀態的一部分。
如果要獲取狀態的完整副本,則需要使用GlobalKTables
而不是KTables
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.