Spring Cache监控配置与使用规范建议

本文介绍了如何在Spring Boot 2.x中配置和监控缓存,建议在`cache-names`中明确缓存名称,针对不同缓存设置个性化策略。详细讲解了Spring Boot 2.x的监控设置,包括暴露`caches`和`metrics`接口,启用`recordStats`以记录缓存统计信息。同时,还探讨了缓存策略,如设置`softValues`、`size/weight`和`ttl/tti`,并提供了定制化配置的实现方法。
摘要由CSDN通过智能技术生成

建议

  1. 程序中使用的缓存,请在cache-names里指明,如此,可以通过配置文件来明白程序中用到了哪些spring cache。
  2. 请尽量对每一个cache分别设置缓存策略,因为不用的cache其使用的场景与缓存对象大小都不一样。分别设置缓存请使用common-spring-cache-configuere。默认spring不支持。
  3. 缓存策略建议阅读缓存策略最佳配置
  4. Cacheable的sync无特殊情况都设置为true,这样,取数据时有类似LoadingCache的效果,同时利用computeIfAbsent方法实现了线程安全,也防止雪崩问题。

spring boot 2.x 监控设置

spring boot从1.x升级到2.x之后,原先在spring-boot-actuator里默认的一些metrics不在自动生效,而是将这些metrics的功能从spring-boot-actuator迁移到了micrometer.io项目里,作为一个独立的微服务监控项目维护。

为此,为了使spring cache的相关metrics生效,需要进行如下配置:

  1. 在management.endpoints.web里添加caches与metrics两个接口暴露,默认只暴露health、info。
management:
  endpoints:
    web:
      exposure:
        include: info, health, metrics, caches
  1. 在spring.cache里指定cache-names的配置
spring:
  cache:
    cache-names: books, rooms

如果不指定cache-names,spring cache metrics是不会生效的,因为spring是在加载的过程中来确认需要对哪些cache来监控,像Cacheable之类需要动态加入的cache,spring在加载过程中无法感知到。

  1. 对cache provider启动调用记录功能,以caffeine为例,在spec中加入recordStats,如下:
spring:
  cache:
    cache-names: books, rooms
    caffeine:
      spec: recordStats
  1. 相关url
    • /actuator/caches 获取cache manager内的cache实例
    • /actuator/metrics/cache.gets 获取cache内缓存对象的情况,包括hit/miss的情况,具体参考tags drillDown的使用方式https://docs.spring.io/spring-boot/docs/2.0.0.BUILD-SNAPSHOT/actuator-api//html/#metrics-drilling-down
    • /actuator/metrics/cache.puts
    • /actuator/metrics/cache.eviction
  2. 举例
  • curl localhost:8080/actuator/metrics/ 访问所有支持的metrics
{
   
    "names":[
        "jvm.memory.max",
        "jvm.threads.states",
        "process.files.max",
        "jvm.gc.memory.promoted",
        "cache.puts",
        "cache.size",
        "cache.evictions",
        "system.load.average.1m",
        "jvm.memory.used",
        &
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值