2014-11-06 46 views
1

當前應用程序使用阿卡eventstream及其發佈/訂閱對於其中進口了大量的數據的使用情況,並且在接收數據爲它發佈每行和事件並且有一個用戶到它。如果出版商/用戶本身出現問題,這種設計將面臨失去事件的風險。阿卡持久性或不

我想知道如果用阿卡持久這裏是有道理的,有幾個原因

1)堅持事件 2)審計歷史 3)重新情景與快照

注意,不是共享/全局狀態(通常在幾乎所有Akka持久性博客/示例中都被描述爲一個用例)。

Akka持久性在這裏有意義嗎?

+0

如果您的運輸到Persistent Actor是可靠的(例如,TCP),Akka將確保您的活動被寫入日記,因此可以重新回放。 – 2014-12-15 05:02:08

+0

@ user2066049您能否在我的回答中澄清Mahdi的意見,如果答案沒有問題,請接受並關閉此問題? – 2015-07-29 12:56:30

回答

0

如果我正確理解你的情況,我會說沒有1),是2),無3):

1)如果消息被丟失,由於與發佈/訂閱的問題調解器(你並不真正控制),它永遠不會到達你的執行者,因此永遠不會保存在事件流中,從而不會重播。

2)在審覈期間可以查看記錄的訊息。

3)如果您的演員是無狀態處理器,您將在快照中重新創建/保存什麼樣的場景?

我建議你可以工作,直到你收到來自消費者的ACK 1使用確認周圍/重試中重新發送定期的消息機制。

+0

這個問題說沒有共享狀態,並不意味着「無國籍演員」。這是否應該將(3)的答案更改爲是? – Mahdi 2015-07-29 12:03:46

+0

@Mahdi如果他們的處理器是有狀態的,那麼是的。但是鑑於它們只是分佈式處理器,我會認爲它們不是? OP沒有真正澄清。 – 2015-07-29 12:55:52