6


我的 DAL 是用它实现的Hibernate,我想将EHCache其用作具有分布式功能(用于可伸缩性和 HA)的二级缓存。
看到EHCache只提供分布式缓存Terracotta我的问题是Terracotta服务器实例的作用是什么?它还保存数据吗?它是否只协调分区缓存部分之间的分布?
我的困惑主要来自关于 TSA解释,它说服务器保存数据,但我认为在我的场景中缓存和Terracotta服务器可能是合并的。我对么?
如果服务器确实保存了数据,那么为什么瓶颈不应该从数据库转移到Terracotta服务器呢?

更新: Affe 的回答回答了我的问题的第二部分,这是重要的部分,但以防万一有人来寻找第一部分,我会说 TC 服务器必须保存内存中 EHCache 保存的所有数据,所以如果您想要一个分布式缓存(不复制),那么 L2(TC 服务器)也必须自己保存所有对象。

提前致谢,
Ittai

4

2 回答 2

4

这个想法是通过 terracotta 驱动程序联系 terracotta 集群并执行基本上是 Map 查找的操作仍然比获取数据库连接并执行 SQL 语句要快得多。即使这确实成为应用程序的阻塞点,预计总体吞吐量仍将显着高于 JDBC 连接 + SQL 阻塞点。开放的连接和开放的游标是数据库中的大资源消耗,兵马俑集群的开放套接字不是!

于 2011-01-31T19:19:08.443 回答
3

您可以在不使用 terracotta 的情况下将 ehcache 集群化。他们有通过 RMI、JGroups 和 JMS 执行此操作的文档。我们正在使用 JMS,因为我们已经有一个重要的 JMS 基础设施来处理通信。我不知道从长远来看它的扩展性如何,但我们目前关心的只是 HA。

于 2011-02-01T02:44:30.123 回答