【问题标题】:Google Guava Cache On App EngineApp Engine 上的 Google Guava 缓存
【发布时间】:2015-04-15 11:36:15
【问题描述】:

有谁知道是否有任何理由不在 Google App Engine 上使用 Google Guava Cache 库。

https://code.google.com/p/guava-libraries/wiki/CachesExplained

特别是使用驱逐监听器。我担心的是缓存不会跨实例复制。

用例将因此创建一个缓存:

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
       .maximumSize(1000)
       .expireAfterWrite(10, TimeUnit.MINUTES)
       .removalListener(MY_LISTENER)
       .build();

在发布到 http servlet 时,将缓存用于后续发布,并在删除时采取一些措施。我担心应用引擎处理缓存的方式存在一些细微差别,以及在应用引擎文档中没有提到使用驱逐侦听器的方式:https://cloud.google.com/appengine/docs/java/memcache/ 与它在 Guava Docs 中的完成方式相比。

更新:

从一些测试看来,google guava 缓存在 GAE 上不起作用 - 并且缓存在事务结束时被驱逐(30 秒左右)

提前致谢。

【问题讨论】:

    标签: java google-app-engine caching guava


    【解决方案1】:

    问题在于这个缓存存储在本地内存中,请记住,GAE 实例一直在创建和销毁,并且不能保证来自用户的请求由同一个实例提供服务。

    除非您可以使用共享资源(如 memcache 或数据存储)备份此缓存,否则您将不走运。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2017-06-23
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2013-01-02
    • 2013-02-05
    相关资源
    最近更新 更多