2011-01-31 22 views
6


我的DAL與Hibernate一起實施,我想使用EHCache作爲其分佈式功能(用於可伸縮性和HA)的第二級緩存。
看起來像EHCache提供分佈式緩存只與Terracotta我的問題是什麼Terracotta服務器實例的作用是什麼?它是否也包含數據?它只是協調分區緩存部分之間的分佈嗎?
我的困惑主要來自this關於TSA的解釋說服務器擁有數據,但我認爲也許在我的情況下緩存和Terracotta服務器是有點合併。我對麼?
如果服務器確實擁有數據,那麼爲什麼瓶頸只能從數據庫移動到Terracotta服務器?當Terracotta服務器用作EHCache Hibernate的後端時,它會做什麼?

更新: 是Affe的答案回答我的問題的第二部分,它是重要的組成部分,但以防萬一有人來通過尋找,我會說,TC服務器必須保持所有數據的第一部分,即內存中的EHCache會保留,所以如果你想要一個分佈式緩存(不復制),那麼L2(TC服務器)也必須保存所有的對象。

由於提前,
以太

回答

4

的想法是,它仍然顯著更快通過兵馬俑司機聯繫兵馬俑羣,做基本上是一個地圖查找,比獲得一個數據庫連接並執行SQL語句。即使這確實成爲應用程序的瓶頸,但預計整體吞吐量仍將明顯高於JDBC Connection + SQL阻塞點。打開的連接和打開的遊標是數據庫中的大量資源,對於兵馬俑羣來說,打開的連接並不是!

+0

我明白這個問題 - 爲什麼EHCache需要兵馬俑,而例如JBoss緩存是分散式的,並且不需要任何額外的服務器 – Bozho 2011-01-31 20:22:37

+1

這實際上不是問題,但它是一個很好的附錄。 – Ittai 2011-01-31 21:25:52

3

您可以在不使用兵馬俑的情況下獲得ehcache集羣。他們有通過RMI,JGroups和JMS做文檔。我們正在使用JMS,因爲我們有一個重要的JMS基礎設施來處理通信。我不知道它的長遠發展程度如何,但我們目前關注的只是醫管局。

相關問題