0
在使用EventStore和CommonDomain時有什麼最佳做法來獲取聚合的快照(是否有更好的地方可以提問,usergroup,類似的東西)?J Oliver EventStore V2.0 CommonDomain Snapshot
問候安迪
在使用EventStore和CommonDomain時有什麼最佳做法來獲取聚合的快照(是否有更好的地方可以提問,usergroup,類似的東西)?J Oliver EventStore V2.0 CommonDomain Snapshot
問候安迪
堆棧溢出是問題的最佳場所,因爲每個人都可以從答案中受益。
快照通常應該採取「帶外」 - 即超出處理的主線。換句話說,當一系列事件發生時,你不想在這一點上拍攝快照。相反,你會想讓另一個線程或進程異步獲取快照。我建議使用另一個線程而不是完全獨立的進程,因爲您不必擔心確保程序集(域,消息等)與主處理線程相同。
「如何」拍攝快照的代碼由最終用戶決定。我很可能會在接下來的一週內提供一些額外的指導,瞭解拍攝快照的確切步驟。
一個額外的考慮是,你真的需要快照嗎?你有多少流量超過1000個事件?如果沒有,那麼你幾乎肯定不需要快照的複雜性。
很明顯,在主處理之外拍攝快照並且在不需要時不包括它的複雜性(正如您的優秀文檔中所述)。但我有關於整個API的問題:有一種方法GetStreamsToSnapshot,但我如何訪問配置的IPersistStreams?我怎樣才能從它的返回值IEnumerable獲取聚合的類型,用於加載具有EventStoreRepository的聚合以獲取其快照?你會在哪裏提供指導,你的博客? –
andy
2011-04-23 19:00:07
用於保存快照的API需要我將在明天處理的少量工作。要加載快照,OptimisticEventStore有一個單獨的方法:GetSnapshot會返回快照(如果找到)。從那裏,只需調用GetFrom()並傳入快照即可。快照可以保存在內存中,因此不需要每次都加載。事實上,在超低延遲的系統中,您將需要內存中的大部分內容,因此您只能寫入事件存儲。 – 2011-04-26 00:56:37
最近的提交暴露了IStoreEvents接口上的GetStreamsToSnapshot,它的主要實現,OptimisticEventStore:https://github.com/joliver/EventStore/commit/2ac284ad99f1408e5665dfcf654e575c19932794 – 2011-04-27 03:02:47