【发布时间】:2021-08-20 15:31:38
【问题描述】:
我正在尝试详细收集缓存指标,例如将它们捕获为事件;对象从缓存中命中,或者未命中,花费了 X 毫秒,而不仅仅是聚合指标。由于 Spring Cache 抽象已经足够好,我想我会找到类似拦截器或过滤器的东西,但似乎没有。一个人将如何去做,在没有自己的情况下实现一个 CacheManager?作为参考,我将 Redis 缓存与 Lettuce 客户端一起使用,但更希望缓存抽象保留并在中心位置捕获缓存事件。
- 对于 Spring 来说相对较新,我什至不确定执行这些操作的最佳方法是什么。我尝试创建我的 CacheManager 包装 redis 之一,但不确定它如何与自动配置一起使用。
- 我自己的缓存管理器只是代理所有对包装的调用,但它不知道是缓存命中还是未命中,即使缓存为空,实际方法调用也会调用它们。
【问题讨论】:
-
如果这是你的全部功能,它实际上会破坏正确的执行。您需要哪些开箱即用的指标?
-
这不是完整的功能,它只是我试图匹配但无济于事的签名。我想捕获获取缓存需要多长时间,并将它们记录在其他地方,但我需要每个请求,因此我对聚合指标不感兴趣。
标签: java spring spring-boot spring-cache