我們計劃運行分佈在兩臺機器上的kafka流應用程序。每個實例都將其Ktable數據存儲在自己的機器上。 我們面臨的挑戰是,Kafka交互式查詢 - 跨實例訪問大量數據
- 我們有100萬條記錄推送到Ktable。我們需要迭代整個Ktable(RocksDB)數據並生成報告。
- 假設存儲在每個實例中的500K個記錄。通過http (除非有任何流式TCP技術可用),通過單個GET從其他實例獲取所有記錄是不可能的。基本上 我們需要一次調用兩個實例數據並生成報告。
建議的解決方案: 我們正在考慮有這兩個instances.So共享位置(state.dir),這兩種情況下,將存儲在同一目錄下的Ktable數據和想法是讓所有數據一個實例,而不只是通過調用交互式查詢,
final ReadOnlyKeyValueStore<Key, Result> allDataFromTwoInstance =
streams.store("result",
QueryableStoreTypes.<Key, Result>keyValueStore())
KeyValueIterator<Key, ReconResult> iterator = allDataFromTwoInstance.all();
while (iterator.hasNext()) {
//append to excel report
}
問題: 請問上述解決方案的工作沒有任何問題?如果沒有,有沒有其他解決方案呢?
請建議。提前致謝
阿卡-http看起來很有趣。非常感謝你的詳細解釋 – Sathish