第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當(dāng)所有演員都在同一個 jvm 中運(yùn)行時,用 akka 丟失消息的場景

當(dāng)所有演員都在同一個 jvm 中運(yùn)行時,用 akka 丟失消息的場景

夢里花落0921 2022-12-15 17:04:51
我曾經(jīng)在 akka 框架的幫助下用 java 編寫了一個多人游戲。通過他們的“至少一次”交付,我一直想知道如果所有akka參與者都在同一個本地 jvm 中運(yùn)行,在哪些情況下消息會丟失。游戲的設(shè)計(jì)就像一個巨大的狀態(tài)機(jī)(因?yàn)槭录枰错樞蛱幚恚?,所以大多?shù)時候只有一條消息在所有相關(guān)參與者之間傳輸。(可以并行運(yùn)行多個會話)我讀過,在本地運(yùn)行時,演員的交流是在內(nèi)存中完成的。因此,不考慮內(nèi)存不足錯誤,他們的其他(最好是可重現(xiàn)的)場景是消息實(shí)際上丟失的地方嗎?注意:消息框操作也不是我想要的。只是出現(xiàn)問題并且消息確實(shí)丟失的合法情況。
查看完整描述

1 回答

?
長風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個贊

我讀過,在本地運(yùn)行時,演員的交流是在內(nèi)存中完成的。因此,不考慮內(nèi)存不足錯誤,他們的其他(最好是可重現(xiàn)的)場景是消息實(shí)際上丟失的地方嗎?

因此,通常內(nèi)存中交付是正確的,但您還指定您正在談?wù)摗爸辽僖淮谓桓丁惫δ?。文檔 ( https://doc.akka.io/docs/akka/current/persistence.html#at-least-once-delivery ) 特別討論了 at-least-once 如何改變很多正常行為。具體來說,至少一次使用持久性來跟蹤已發(fā)送的內(nèi)容和已確認(rèn)的內(nèi)容。

因此,當(dāng)您使用 at-least-once 時,發(fā)送消息時必須進(jìn)行完整的操作。首先,必須存儲消息,以便在發(fā)送方失敗時,該工作可以在其他地方恢復(fù)。其次,必須發(fā)送消息。第三,任何響應(yīng)都必須與發(fā)送的消息相關(guān)聯(lián),并且收據(jù)持久存在,這樣如果 actor 在該點(diǎn)之后失敗,恢復(fù)的 actor 就知道不必重試該消息。

因此,應(yīng)該不會出現(xiàn)消息丟失的情況。即使 JVM 丟失。(即使所有 JVM 都丟失了。)這畢竟是“至少一次”的要點(diǎn),可以保證消息被傳遞(并回復(fù))。但是,請注意,這確實(shí)需要權(quán)衡。(有關(guān)權(quán)衡,請參閱文檔,盡管一個明顯的因素是性能。)


查看完整回答
反對 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號