2012-12-20 50 views
2

我們有一個基於SOA的平臺,其中包含許多服務和一組利用服務的應用程序。每項服務都通過客戶端公開其功能,客戶端成爲主機應用程序的一部分並調用服務。SOA平臺中的服務的客戶端緩存

爲了減少網絡調用次數,我創建了一個客戶端緩存框架,其中的對象緩存在客戶端層。客戶端會定期輪詢服務以檢查哪些對象已更改並相應地使緩存無效。所以在大多數情況下,傳入的請求都來自客戶端緩存,只有當客戶端緩存不包含請求的項目時纔會進行服務調用。

我的問題是,如果我有10個不同的應用程序依賴於特定的服務/客戶端,相同的緩存將被複制到所有的應用程序中,這似乎過多冗餘,每個應用程序將有更大的內存佔用。

我在這裏有什麼選擇?

+0

根據您的業務環境,可以使用多種選項。你的技術堆棧是什麼?在JEE環境中,Singleton SLSB可以工作等。 – kolossus

+0

@kolossus ..我們的技術棧主要由帶有Spring框架和ehcache的J2SE組成。 –

回答

0

您可以爲將與應用程序駐留在同一臺計算機上的服務設置「前端」或代理。它可以暴露遠程服務的相同API並利用它內部的緩存。如果您使用類似OSGI的東西,您仍然可以將其作爲獨立組件部署。