OAuth 性能
我是 OAuth 的新手 - 我有一个使用 OAuth 的大量客户:带有 12 台服务器的 LoadBalancer,但仅使用 1 台服务器来存储 OAuth 令牌。今天,在测试时我只能在网站上获得 1000 个并发用户,并且我需要支持 10,000 个 SLA。
我正在考虑以下替代方案: 1) 寻找更强大的 OAuth 库 - 必须基于 Java 2)将令牌存储在数据库中 - 速度会慢一些,但用户可以访问
我还缺少什么吗?更有经验的 OAuth 开发人员/架构师有什么建议吗?
非常感谢! 史蒂夫
I'm a newbie to OAuth - I have a high volume customer using OAuth: LoadBalancer with 12 servers but only using 1 server to store the OAuth tokens. Today, when testing I can only get 1000 concurrent users on the site and I need to support an SLA of 10,000.
I'm looking at the following alternatives:
1) Look for a more robust OAuth library - must be Java based
2) Store the tokens in a database - will be slower but users will have access
Is there anything else I'm missing? Any recommendations from more experienced OAuth developers/architects?
Much Appreciated!
Steve
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有遗漏任何东西。这不是 OAuth 解决此问题的目的。因此,第二种选择对我来说听起来不错。无论如何,如果您想以低成本轻松实现某种程度的可扩展性,那么这里没有 COTS 集群解决方案,也没有数据库存储。
相反,开始在其自己的服务器层上使用分布式缓存系统水平扩展您的令牌存储库。
如果是 java,可能需要调查 spymemcached 或同等工具。
Not missing anything. That's not the purpose of OAuth to solve this. Therefore, 2nd alternative sounds good to me. Anyway no COTS clustering solutions, no db storage here if you want to achieve some certain level of scalability easily and at low cost.
Instead start scaling horizontally your token repository using a distributed caching system on its own tier of servers.
If java, maybe investigate spymemcached or equivalent.
您可以将 oauth 访问令牌存储在任何分布式持久缓存中(例如带有副本集的 mongo db)。通过此设置,您的 oauth 访问令牌将在所有 12 个盒子上可用,并且您将能够水平扩展。在任何盒子上创建的令牌都将自动复制,并且与常规数据库相比,它应该超级快。
有关 mongodb 和副本集的更多信息
You can store your oauth access tokens in any distributed persistent cache (like mongo db with replica sets). With this setup your oauth access tokes will be available on all 12 boxes and you will be able to scale horizontally. Tokens created on any box will be automatically replicated and it should be super fast compared to a regular database.
More info on mongodb and replica sets