2013-01-31 63 views
1

我們將構建一個管理多種類型隊列的應用程序。我正在研究如果應用程序因任何原因崩潰,不會丟失數據的最佳方法。我用「堅持」這個詞做了一些Google搜索,這讓我一遍又一遍地看到JPA。我有一些與JPA的經驗。在發生崩潰時,我並不是Java的「關閉順序」方面的專家,我想知道持久化隊列涉及到什麼。有沒有提供這些功能的庫?在崩潰之間保存數據

+0

你在說什麼類型的隊列?如果這是類似JMS隊列的事情,那麼你應該考慮使用JMS解決方案。 –

回答

2

在碰撞期間沒有一致的「關機順序」,這就是爲什麼它被稱爲崩潰。有人可以將插頭從牆上插座拔出,或者不小心通過電腦驅動怪物卡車。

你最好的選擇是使用一個輕量級的嵌入式數據庫(例如Berkeley DB Java版)來存儲你的應用程序狀態。當然,如果你的應用程序狀態非常大(比如你有成千上萬的併發用戶),您可能需要更詳細的解決方案。

請注意,您仍然不可避免地會丟失一些應用程序狀態,基本上是自上次保存以來的任何狀態。

+0

爲什麼使用嵌入式數據庫,是不是會損失保存應用程序狀態的目的?在崩潰時,嵌入式數據庫會泄露所有數據。 –

+0

@Stefan'Embedded'!='in-memory'。我推薦了一個嵌入式數據庫,因爲它可能是最快的解決方案,並且在保存狀態時不需要很大的開銷。但它仍應保存到磁盤。 – biziclop

+0

的確,我的頭腦還在別的地方=) –