在SOA中,我們不應該在客戶端和服務器之間建立或保持狀態(或設計依賴關係)。這是可以理解的。但是,如果客戶想要使用可能返回開放式數量的「行」的實時服務,那麼可以遵循哪些模式?SOA/Web Service分頁
Web應用程序類似於SOA,但允許狀態(會話)已通過分頁解決了這一問題。分頁需要(在大多數情況下,特別是在SQL中)服務器保存數據並且客戶端以塊的形式請求數據。
如果我們在哪裏考慮Web服務的分頁式場景,那麼遵循什麼樣的模式,仍然可以遵守SOA(或儘可能地接近)的原則。
的思想家的一些規則:由SQL數據庫支持 1)(因而在選定的一組沒有行號的概念) 2)不跳過行或重複行是很重要的分頁 3)數據可以被插入時設置以及其他客戶 4)無需考慮數據集的實時(更新能)數據集
個人在任何時間刪除到數據庫中,我認爲1上述2已經通過限制解決方案空間與需求來拼寫我們的解決方案。
我建議的解決方案應該將數據(與選擇的一樣多)存儲在只讀存儲器/緩存中,可以在結果集中爲其分配行號,並允許在此數據快照上進行分頁。我有基礎設施來存儲快照(服務器,外部緩存,memcached或ehcache - 這必須相當大)。這種查詢的結果是一個快照ID,客戶端可以使用快照API(Web服務)和快照ID從快照中檢索數據。在x是合理的情況下,結果將以x只記錄的只讀方式進行處理。
不勝感激的想法和想法,批評或讚譽將不勝感激。
我會告訴你twitter如何處理他們的分頁。這可能對您有所幫助https://dev.twitter.com/rest/public/timelines – 2014-10-06 05:33:09