2012-04-27 156 views
1

我一直在研究這個了一個星期,但我想在我的特殊情況的一些想法......緩存實現

2物理服務器:

  • 服務器A - 公共WAR ,管理WAR

  • 服務器B - 公共WAR

要求:

  • 兩個WAR都需要查看相同的數據。

  • admin WAR修改/添加數據到緩存。

  • 公共WARs修改緩存的其他部分/向它添加數據。整個高速緩存需要駐留在每個物理服務器上的內存中(如果我在服務器A上添加了一個管理員WAR或公共WAR,它需要在服務器B公共WAR上顯示),所以如果發生故障,我們不能等了半個緩存中填充

  • 1500個活躍用戶/服務器,絕大部分流量都被讀取,很少寫

額外的硬件出了問題。

這種情況下是否有良好的第三方緩存解決方案?看起來大多數分佈式緩存系統想要在服務器A上留下一半數據,在服務器B上留下一半數據,這不能滿足我們的故障轉移性能需求。

感謝您的任何想法!

+0

可能是ehcache? – kosa 2012-04-27 18:13:25

回答

0

看看the replicated options for EhCache

聽起來你一直在尋找的「分佈式緩存」的信息,其中有一個不同的確定指標不是「複製緩存」。分佈式緩存是分佈在衆多機器中的較大緩存系統,因此羣集中任何機器的丟失都不會降低整個緩存,而只是部分緩存。在這種情況下,緩存的總大小可以達到(機器數量乘以每臺機器的內存)。

在複製緩存中,緩存的數據在每臺機器上進行復制,從而將總緩存大小限制爲max(任何一臺機器的內存)。

+0

你是對的。我正在閱讀EhCache的複製細節。謝謝! – PersonThing 2012-04-27 18:21:42

1

http://www.gigaspaces.com/爲此提供了一個解決方案,它允許您在複製模式下創建用作緩存的「空間」,因此每個節點都將具有精確的數據副本。

他們也有解決方案的故障轉移或熱備用。

編輯: Gigaspace遠遠不僅僅是一個共享緩存,但你可以只使用緩存解決方案。它被稱爲內存數據網格。他們戲劇性地改變了他們的網頁,所以我找不到確切的頁面。但是如果你通過文檔搜索你會發現它。

你可以從這裏開始 http://www.gigaspaces.com/datagrid

但是這項技術是不是免費的。

+0

不幸的是這個問題域不起作用。這是針對定製軟件出售給在現有機器上託管它的公司(現有軟件的新版本,對於現有硬件..網絡託管不是選項)。 – PersonThing 2012-04-27 18:20:58

+0

虛擬主機只是一個選項。看看http://www.gigaspaces.com/datagrid – Hurda 2012-04-27 19:47:07

0

似乎大多數分佈式緩存系統要離開服務器B上一半的數據 在服務器A和一半,這不符合我們的故障轉移 性能需求。

不,您可以輕鬆調整。否則,您需要粘貼(您必須確切知道哪個緩存存儲您的數據)。你可以選擇EhCache,GigaSpace,GridGain等市場上的任何解決方案。我會推薦使用JBoss Cache,最簡單,最準確的你需要的產品

0

這個領域有很多解決方案。

所有這些可以被配置爲分佈式緩存。 AFAIK當在JBoss AS中留下一個嵌入式緩存時,Infinispan效果最佳,最後我檢查了它很難集成到其他應用程序服務器中。如果你有錢,我會推薦Terracotta的BigMemory。它是EhCache的商業衍生產品,並提供了許多其他更好的功能。