问题标签 [ehcache-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
814 浏览

java - 同一个 CacheManager 的同一个 Ehcache 对象可以被多个线程使用吗?

我创建了一个Cache对象,它存储 aString作为键和一个序列化的对象作为值。

我正在尝试运行三个 Akka 线程,它们以同步的方式检索和写入同一个 Ehcache 对象。

但只有一个线程获取存储在Cache. 对于其余线程,它会抛出一个NullPointerException. 我不知道为什么。

0 投票
0 回答
509 浏览

java - 分布式模式下的 EhCache

我们正在尝试在我们的应用程序中使用 EhCache 作为分布式缓存。EhCache 实例嵌入在我们的服务器中,我们使用了一个 terracota 集群。

我们所有的服务器(和 ehcache)实例都成功连接到这个 tc。我们成功地插入、更新并进入我们的每个缓存。但是我们不能迭代任何缓存。

也许我们以错误的方式配置了缓存,但似乎尚未实现迭代器方法(在 org.ehcache.clustered.client.internal.store.ClusteredStore 中):

我们的缓存配置如下所示:

我没有找到任何其他方法,甚至没有找到密钥列表。

那么我们是否在缓存配置中犯了错误?还是EhCache分布式模式与这种方法完全不兼容(所以我们不会使用EhCache)。

0 投票
2 回答
554 浏览

java - Java Web 应用程序中的持久缓存?

Ehcache用来缓存 Web 应用程序中昂贵的服务调用的结果。

我希望缓存在 JVM 重新启动时保持不变。

heap我用和配置了一个 2 层 ehcache disk。不幸的是,Ehcache 仅在调用时将缓存保存到磁盘PersistentCacheManager.close()

我怎样才能让持久性正常工作?我应该定期关闭并重新打开缓存吗?我应该为此查看 ehcache 以外的其他内容吗?

0 投票
1 回答
852 浏览

spring - 第三方 Spring 库中的缓存管理器

想象一下,您创建了一个 Spring 库,它为某些远程服务提供服务组件。服务组件想要在内部缓存响应数据,Spring 缓存非常适合。还可以想象缓存需要比任何默认缓存(超时、最大大小等)稍微高级一些,因此该库提供了一个缓存管理器来创建它。但是,您不希望第三方缓存管理器突然负责包含该库的项目中使用的所有缓存(该项目可能有自己的缓存)。

我观察到的行为是,如果项目使用使用简单的 application.properties 配置的缓存(比如说 ehcache - 请参见下面的示例),则无论我如何构建,组件提供的缓存管理器都会被调用以创建所有缓存编码。发生这种情况是因为项目没有提供它自己的任何缓存管理器吗?

在不涉及项目的情况下,是否不可能在图书馆提供的服务中进行这样的缓存?对于用例来说,库可以提供缓存而不干扰项目缓存是非常重要的。


示例服务缓存配置:


示例项目application.properties:


示例项目 ehcache3.xml:

我看到了“服务数据”和“内容”缓存的日志记录调用。服务缓存配置只关心它自己的服务数据缓存。如果项目不必用@Primary 声明一个单独的缓存管理器(我相信这可能有效,但我还没有尝试过),我是否应该不能只为这个缓存提供一个缓存管理器?

谢谢你的帮助!

0 投票
1 回答
842 浏览

ehcache - ehcache 3.4 中的磁盘持久缓存正在使用(泄漏?)直接内存

我正在运行一个使用 Ehcache 3.4.0 的 Web 应用程序。我有一个缓存配置,它定义了 1000 个内存对象的简单默认值:

然后,我有一些使用此默认模板的基于磁盘的缓存,但会覆盖所有值(以编程方式生成,所以这就是他们甚至使用默认模板的原因),如下所示:

当数据写入我的基于磁盘的缓存时,JVM 使用直接/堆外内存,并且从未释放。即使清除缓存也不会释放内存。使用的内存与写入基于磁盘的缓存的数据直接相关(据我所知,几乎是逐个字节)。

此缓存的权威层是org.ehcache.impl.internal.store.disk.OffHeapDiskStore的一个实例。

这似乎是内存泄漏(内存被消耗且从未释放),但我绝不是配置 ehcache 的专家。任何人都可以建议进行配置更改以导致我的磁盘层不使用堆外内存吗?或者,我是否完全误解了其他人可以指出的其他内容?

谢谢!

0 投票
1 回答
327 浏览

java - Java EHCache 3 监听器和元空间问题

我们在 JBoss EAP 7 中遇到了元空间泄漏问题,每次热部署后都会发生这种泄漏。

经过一番搜索,我发现了这个: https ://blog.voina.org/docker-jboss-dies-with-java-lang-outofmemoryerror-metaspace-after-several-redeploys/

它实际上可能与保存一些类引用的 EHCache 有关,这会阻止 JBoss 类加载器从元空间中删除旧类。

在本文中,建议使用 EHCache 库中包含的侦听器:

不幸的是,我们使用的是 EHCache 3.2.0,并且在那个版本中没有这样的监听器,有没有其他监听器的替代品?或者任何与我可以在“contextDestroyed”方法中调用的完全相同的方法?

0 投票
2 回答
3930 浏览

caching - 使用 spring boot 1.5 设置 Ehcahe 3 时出错

我最近从1.4升级到spring boot 1.5.7,发现Ehcache已经从2.x升级到了3.x。配置都变了。现在我无法设置缓存配置。

我尝试按照Ehcache官方博客上的步骤进行操作,但没有成功。

这是我的ehcache-dev.xml

我的application-dev.properties文件包含以下行:

spring.cache.jcache.config=classpath:ehcache-dev.xml

dev配置文件上运行时,它会生成错误:

现在,如果我没记错的话,在expiry元素内接受元素有问题cache-template。但这不应该是这种情况,因为这里清楚地提到了A <cache-template> element may contain all the same child elements as a <cache> element.and cacheelement 确实有一个expiry元素。

我无法理解我在这里缺少什么。任何帮助表示赞赏。TIA

0 投票
1 回答
127 浏览

ehcache - 我可以急切地坚持我的 Ehcache 吗?

从文件中,我看到:

Ehcache 3 仅在干净关闭的情况下提供持久性(调用了 close())。如果 JVM 崩溃,则没有数据完整性保证。重新启动时,Ehcache 将检测到 CacheManager 未完全关闭,并在使用之前擦除磁盘存储。

这是否意味着我无法急切地将条目(或我知道肯定已更新的某些条目)刷新到磁盘?

另外,我想知道 close() 钩在哪里?如果我手动杀死jvm会触发吗?

谢谢

莱昂

0 投票
1 回答
52 浏览

xml - 可以使用系统属性在 ehcache 3 中指定集群 url

配置集群 url 时是否可以在 ehcache3.xml 中使用系统属性?喜欢:

0 投票
1 回答
66 浏览

security - 任何人都安全地部署了兵马俑 5

有没有人实现了具有一定安全性的 terracotta 5(5.3.2) 集群。我没有找到有关此主题的任何文档。

任何帮助将不胜感激。

谢谢