我的DAL是用Hibernate
实现的,我想使用EHCache
作为其二级缓存及其分布式功能(用于可伸缩性和HA)。
看作EHCache
只提供Terracotta
的分布式缓存我的问题是Terracotta
服务器实例的作用是什么?它是否也包含数据?它是否只协调分区缓存部分之间的分配?
我的困惑主要源于关于TSA的this解释,其中说服务器保存数据,但我认为可能在我的场景中缓存和Terracotta
服务器是合并的。我是对的吗?
如果服务器确实保存数据,那么为什么瓶颈不应该从数据库移动到Terracotta
服务器?
更新 Affe的回答回答了我的问题的第二部分,这是重要的部分,但万一有人来找第一部分,我会说TC服务器必须保存内存中的EHCache所有的数据,所以如果你想要一个分布式缓存(不复制),那么L2(TC服务器)也必须自己拥有所有对象。
提前致谢,
以太
答案 0 :(得分:4)
这个想法是,通过赤土陶器驱动程序联系兵马俑集群并基本上进行地图查找比获取数据库连接和执行SQL语句要快得多。即使这确实成为应用程序的阻塞点,预计整体吞吐量仍将远高于JDBC Connection + SQL阻塞点。打开连接和打开游标是数据库中的大量资源,而赤陶集群的开放套接字不是!
答案 1 :(得分:3)
您可以在不使用赤土陶器的情况下获得ehcache群集。他们有通过RMI,JGroups和JMS完成的文档。我们正在使用JMS,因为我们已经有一个重要的JMS基础设施来处理通信。我不知道从长远来看它的规模有多好,但我们目前关注的只是HA。