あまみや ゆうこ » 2019 » 4

LRU Cache在柚子加速器中的实践

Backgrounds

一个软件系统由多部分组成:Web Service、前端、数据库等,在一个大规模的软件系统中,我们需要考虑在某一部分发生故障时,对整体业务的影响是多大。比如在数据库无法连接时,我们的柚子加速器系统会有哪些部分受到影响导致用户无法使用?

LRU是Least Recently Used的缩写,LRU Cache是一个容积固定,在溢出时将历史中最古老的元素置换。

Onboard

我们希望在数据库不可用时,已经付费的用户仍可正常登录使用,而在数据库故障时,我们可以接受无法注册新用户,因此用户相关的信息、游戏列表、线路列表等信息是需要被Cache的,而这个LRU Cache的容积应与日活量成正比。

由于上述需求,开发了Pomelo.Framework.LRUCache这个库,目前还没有发布到NuGet,敬请期待。

首先向项目中添加Pomelo.Framework.LRUCache的引用,并在Startup中使用AddLRUCache()自动添加程序集中所有实现Pomelo.Framework.LRUCache.ICache<,>接口的缓存对象。

services.AddLRUCache();

更多内容 »

Published on 4/9/2019 8:21:24 AM