Spring Cloud配置刷新缓存配置

时间:2019-01-14 17:24:32

标签: spring-boot spring-cloud-config caffeine

考虑以下服务,如何使用 / actuator / refresh 端点动态修改缓存配置

@Service
@Slf4j
public class GreetingService {

    @Cacheable("greeting")
    public String greet(String name) {
       log.info("Greeting: {}", name);
       return "Hello " + name ;
    }
}

具有以下默认配置

spring
  cache:
    caffeine:
      spec: maximumSize=100,expireAfterAccess=600s

让我们说设置为 maximumSize = 50,expireAfterAccess = 300s

GreetingService 中添加 @RefreshScope 无效。我需要以某种方式指示Spring Boot重新创建CacheManager吗?

我在这里有一个支持项目:

  1. https://github.com/altfatterz/refreshscope-demo
  2. https://github.com/altfatterz/refreshscope-demo-config

谢谢。

1 个答案:

答案 0 :(得分:0)

您正在使用执行器,因此可能还存在cache actuator。因此,使用此命令进行案例测试: curl 'http://server:port/actuator/caches/greeting' -i -X DELETE

注意:我没有测试过,这只是一个主意