authentication - 如何通过负载均衡策略更好地利用本地缓存?
问题描述
我有一个身份验证服务,我需要缓存一些用户信息以获得更好的性能。我选择使用本地缓存,因为可能会在每个请求上调用身份验证服务,所以我希望它超级快。与远程缓存选项相比,本地缓存要快得多(本地缓存访问时间低于 1 毫秒,而远程缓存访问时间约为 25 毫秒)。
问题是我无法缓存与分布式缓存一样多的信息而不会耗尽内存(谈论数百万用户)。我可以保持原样,当本地缓存达到内存限制时,它会驱逐一些其他数据,但这将是缓存的糟糕优化。或者我可以使用某种负载均衡器策略,其中用户将根据其 IP 地址或其他标准重定向到相同的身份验证服务实例,因此缓存命中率会高得多。
这有点违背了拥有无状态服务的目的,但是我认为如果我想要一致性和可用性,我可以在网络层稍微妥协这一原则。至于身份验证,两者对于完全安全都至关重要(用户信息必须始终是最新且可用的)。
什么样的负载平衡技术可以解决这类问题?可以有其他解决方案吗?
注意:尽管这个问题是特定于身份验证的,但我认为许多其他经常访问且需要速度的服务可以从使用本地缓存中受益匪浅。
解决方案
推荐阅读
- javascript - 使用 JavaScript 对 Firebase 数据库中的电子邮件 ID 进行重复检查
- swift - 在 webview 中执行回车或在文本字段上输入问题 | 迅速
- r - corrplot 函数 | 方法不是图形参数
- mysql - Nodejs Sequeslize 错误:连接 ECONNREFUSED
- python - AttributeError: 'function' 对象没有 functools.lru_cache + 参数格式装饰器差异的属性 'cache_info'
- r - 如何去掉引号之间的文字?
- python - 自定义 WebSocket URL
- javascript - SVG 到画布到 .webm,而不是原始清洁
- javascript - 响应式视频以及 flex 中的溢出元素
- vb.net - 如何将字符串拆分为特定顺序的行