我正在使用Java在WebLogic应用程序服务器中创建Web应用程序。
如何实现缓存?有推荐的图书馆吗? WebLogic是否为此提供任何特殊支持?我应该使用通用库,例如Ehcache吗?
答案 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