为了避免 GAE 数据存储写入中的高延迟(尖峰),我想实现一个后写缓存(使用 Java 低级 API)。这意味着数据先同步写入memcache,然后异步写入datastore,这样请求可以快速返回。
然而,这意味着我需要以某种方式也需要异步处理由数据存储争用引起的异常(例如,启动重试)。更准确地说,我需要能够在请求返回后对发生的争用做出反应。我怎样才能做到这一点?使用任务队列进行异步写入处理不是一种选择,因为据说推送到队列仅比数据存储写入快一点。
如果这是不可能的,那么实现后写缓存的好方法是什么?或者在数据丢失不是一种选择的情况下如何处理缓慢的写入。