0

这就是我在 Spring Boot 中构建咖啡因缓存的方式:

Caffeine.newBuilder()
                .initialCapacity(200000)
                .maximumSize(200000)
                .expireAfterWrite(15, TimeUnit.MINUTES)
                .scheduler(Scheduler.systemScheduler())
                .executor(caffeineWriteClientConnectionPool(cacheSpec))
                .recordStats(() -> caffeineMetrics)
                .writer(new CacheWriter<Object, Object>() {});

我使用以下同步方法:

cache.getAllPresent() -> fetch all keys present in cache if not fallback to distributed cache/db and then add the key to the caffeine cache
cache.putAll() -> a key is added to the caffeine cache when its missed

当缓存负载很高时,我看到 get/put 时间增加(> 100ms),这让我想这些调用是否应该在 hystrix 之后,但我认为这将是一个过度的为内存搜索启动线程?

此外,我看到 GC 经常发生,我相信这可能会影响读/写时间。关于设置 GC 的任何建议/最佳实践或我可以采取的任何其他一般性建议来改善延迟?谢谢

4

0 回答 0