什么是Java EE应用程序的良好二级缓存?

时间:2010-03-23 08:54:55

标签: java caching jpa

任何人都可以为Java EE 6应用程序推荐一个好的二级对象缓存解决方案,并为您的推荐提供背景知识吗?我正在使用JPA 2.0作为持久性提供程序。

我特别担心必须将缓存客户端作为单线程/单例bean运行。是这样的吗?如果是的话,这是一个问题吗?

我在使用PHP webapp中的memcached方面有很好的经验,但PHP当然是单线程的,所以这绝不是问题......

2 个答案:

答案 0 :(得分:3)

  

任何人都可以为Java EE 6应用程序推荐一个好的第二级对象缓存解决方案

虽然L2缓存合约在JPA 2.0中已标准化,但L2缓存实施是特定于供应商的,您可能会也可能不会插入不同的L2缓存。

为了以防万一,请参阅Hibernate的19.2. The Second Level Cache一章(正如您所看到的,对问题没有单一的答案,选择一个或另一个实现取决于您的需求和您的方式)使用缓存)。

  

我特别担心必须将缓存客户端作为单线程/单例bean运行。是这样的吗?如果是的话,这是一个问题吗?

我不明白这个问题。您不必担心任何事情,JPA提供程序与缓存交互,而不是您。

答案 1 :(得分:1)

EclipseLink包含一个集成的L2缓存实现,它不需要第三方缓存,但可以通过Oracle TopLink Grid与Oracle Coherence集成。

EclipseLink默认启用缓存,因此您可能已经在缓存,并且不需要执行任何操作。

请参阅, http://en.wikibooks.org/wiki/Java_Persistence/Caching

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Caching