我应该如何在WebLogic环境中的Web应用程序(Java)中实现缓存

时间:2013-12-26 11:27:05

标签: java caching web-applications weblogic ehcache

我正在使用Java在WebLogic应用程序服务器中创建Web应用程序。

如何实现缓存?有推荐的图书馆吗? WebLogic是否为此提供任何特殊支持?我应该使用通用库,例如​​Ehcache吗?

4 个答案:

答案 0 :(得分:2)

当您想要使用缓存时,首先要考虑的是:

  • 您的应用程序的哪个部分需要改进?

通常,耗时的事件是查询和其他数据库交互。

如果数据库中的某些内容没有太大变化并且您要搜索它很多次,那么缓存它会很好,因为该对象将在内存中进行检索,并且不需要网络请求做成。

以下是您需要在应用程序中考虑的缓存策略配置:

<defaultCache
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>

<cache name="Employee"
maxElementsInMemory="500"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
/>

更多信息: http://www.tutorialspoint.com/hibernate/hibernate_caching.htm

答案 1 :(得分:2)

Oracle Coherence是一种内存数据网格解决方案,可以为Hibernate或其他基于JPA的框架(如TopLink)提供二级缓存。一些Weblogic二进制下载包括已捆绑的Coherence,可以轻松配置以支持在Weblogic上运行的应用程序。有可用的例子here

提供的一个较新功能是能够使用Oracle GoldenGate根据数据库中的更改更新缓存。此HotCache功能有助于解决缓存中可能过时的数据问题。

答案 2 :(得分:1)

如果您的JPA实施基于Toplink,那么最好使用Oracle Coherence。如果JPA实现基于Hibernate,则infinispan是正确的选择。对于简单的缓存,您可以使用ehcache。与ehcache相比,分布式缓存在infinispan中更好,因为它可以作为一个单独的进程(infinispan Hot Rod Server)运行。

答案 3 :(得分:0)

您可以使用一些可以支持群集设置的distrubuted缓存机制 JBoss缓存是一个选项 https://community.jboss.org/thread/83152?start=0&tstart=0