如何在 Java 中不使用内存缓存的情况下有效存储 OAuth 令牌 (TTL)?

问题描述 投票:0回答:1

我使用 EHCache 来存储动态 TTL OAuth 令牌,但我在 Kubernetes 中维护多个 pod,最终进行多个 OAuth 令牌 REST 调用来获取最新令牌,并且由于 Pod 中的流量较少,API 性能(P90、P95)正在变得越来越差不好。

我尝试将 OAuth 令牌保存到 MongoDB,但由于静态 TTL 索引,我无法动态创建 TTL 索引,甚至无法使用过期秒数根据当前时间进行计算,因为这可能会导致并发线程最终读取/同时写入令牌。

寻找更好的设计建议来处理动态 oauth 令牌管理,而无需在 Java 环境中使用任何内存缓存。使用 Java 和 MongoDB 的编程方法寻找更好的解决方案。

java spring mongodb caching ttl
1个回答
0
投票

这可以通过将 Mongo TTL 设置为“0”并将到期日期设置为 TTL 索引日期字段以使其在特定时间(在令牌到期时间)到期来解决。 https://www.mongodb.com/docs/manual/tutorial/expire-data/#expire-documents-after-a-specified-number-of-seconds

© www.soinside.com 2019 - 2024. All rights reserved.