我對兵馬俑很陌生,我已經安裝並使其與EHcache一起正常工作來分發緩存,但是現在我得到的並不是我真正想要的東西。 在我的應用程序中,我希望有幾個帶有ehcache的客戶端緩存(L1),並將已刪除密鑰的失效從客戶端「傳播」給所有其他客戶端。我不希望我的緩存也駐留在兵馬俑服務器上,所以我想簡單地禁用L2緩存,以便我的對象不需要可序列化(在緩存上執行的唯一操作是PUT和REMOVE) 。 我知道這可以使用簡單的ehcache來完成,但我的環境中沒有多播支持(Amazon EC2),我的客戶端將自動創建自動縮放功能,所以我無法知道他們的IP。所以基本上,我需要一個Terracotta服務器來傳播無效請求給所有的客戶端。有什麼辦法可以做到這一點? 非常感謝!兵馬俑禁用二級緩存和對象序列化
0
A
回答
0
當您使用了Ehcache被Terracotta和你的緩存配置支持您指定要使用兵馬俑,如:
<cache name="com.xyz.MyPOJO"
<terracotta/>
</cache>
那麼你的類必須是可序列化(因爲秦始皇會試圖將其存儲在緩存服務器實例。
然而,在您的配置,您可以指定不使用秦俑對於一些高速緩存,例如
<cache name="com.xyz.MyPOJO"
<terracotta/>
</cache>
<cache name="com.xyz.NotServerStoredPOJO"
</cache>
那麼你的「不上面的例子中的「ServerStoredPOJO」不會存儲在兵馬俑緩存服務器上......相反,它將只存在於本地EhCache中......但是通過這樣做,如果您的EhCache在diff中,您將無法將其傳播到其他實例JVM中。
因此,也許你需要在兵馬俑服務器上保留一些東西(某種標誌/ ids),這些東西會指示失效。然後在你的應用程序代碼中有一個通用的類/功能,它將檢查之前的標誌從本地EhCache獲取值...如果它找到要刪除的標誌/標識,則它將從本地高速緩存中刪除它,並且不會返回將任何東西還給請求者。
另一方面,您的用例種類有中央緩存服務器的目的。如果你想協調沒有中央位置的多個緩存實例,你可以使用JGroups http://www.jgroups.org(而不是Terracotta)......它也沒有商業許可證。但是,那麼您將需要通過JGroups實現您自己的機制,從而使您的本地EhCache實例中的某些條目無效...
相關問題
- 1. 集成Neo4J和兵馬俑?
- 2. 嵌入兵馬俑
- 3. 查詢兵馬俑
- 4. 什麼是兵馬俑?
- 5. 兵馬俑4.3 - jar衝突
- 6. 兵馬俑與休眠和EHCache
- 7. 兵馬俑的性能和技巧
- 8. 如何使用ehcache.xml和兵馬俑爲多個EntityManagers配置緩存
- 9. maxElementsOnDisk當使用ehcache與兵馬俑
- 10. 用於Python世界的兵馬俑?
- 11. 對於兵馬俑中的持久數據,如何進化類?
- 12. 需要通用/動態序列化/封送,類似於兵馬俑
- 13. 兵馬俑 - 不能轉換爲com.tc.object.bytecode.TransparentAccess
- 14. 兵馬俑make-boot-jar.sh運行失敗
- 15. AppFabric緩存和序列化IQueryable對象
- 16. 關於兵馬俑和Servlets /共享線程
- 17. 緩存所需的序列化對象
- 18. 緩存不可序列化的對象
- 19. 在「兵馬俑」中使用「髒讀」是否安全?
- 20. 使用兵馬俑作爲持久性解決方案
- 21. Hibernate優化,使用二級緩存?
- 22. 使用JDK 8和兵馬俑的java.lang.ArrayIndexOutOfBoundsException:28526的測試用例失敗3.4.0
- 23. Hibernate.initialize()和二級緩存
- 24. AppFabric緩存 - 對象的序列化和反序列化要求是什麼?
- 25. 兵馬俑Ehcache:在調試期間服務器斷開連接
- 26. 兵馬俑在這種情況下如何工作?
- 27. 兵馬俑可以讓同儕談判誰是主人嗎?
- 28. 兵馬俑節點如何擁有多個活動節點
- 29. 在「兵馬俑」中,「增量記憶」意味着什麼?
- 30. 兵馬俑是否使JMS成爲不需要的圖層?