因此,Apache Storm + Trident提供了完全一次的語義。想象我有以下拓撲:在存儲器風暴三叉戟在網絡分區和/或故障場景中的確切一次保證
TridentSpout -> SumMoneyBolt -> SaveMoneyBolt -> Persistent Storage.
CalculateMoneyBolt
總和的貨幣值,然後將結果傳遞給SaveMoneyBolt
應的最終值保存到遠程存儲/數據庫。
現在,我們計算這些值並僅存儲一次數據庫非常重要。我們不希望意外地重複計算這筆錢。
那麼Storm with Trident如何在成功發送對數據庫的寫入請求時處理網絡分區和/或故障場景,數據庫已成功接收請求,記錄事務,並在響應客戶端時SaveMoneyBolt
在收到數據庫響應之前已經死亡或從網絡中分區了嗎?
我認爲如果SaveMoneyBolt
已經死亡,Trident會重試批次,但我們不能重複計算。
這樣的場景是如何處理的?
謝謝。