题
我真的是通过代理询问这个问题,另一个工作团队收到了我们客户的变更请求。
问题是我们的客户不希望他们的员工同时使用一名以上的用户登录。他们被锁定并共享登录信息。
由于这是在网络农场中,解决这个问题的最佳方法是什么?
缓存到数据库不会导致性能问题吗?
解决方案
您可以考虑使用分布式缓存系统,例如 内存缓存
它可以很好地解决这个问题(它比数据库快得多),并且也非常适合缓存其他任何东西
其他提示
这只是做生意的成本。
是的,缓存到数据库比缓存在网络服务器上慢。但是您必须将该状态信息存储在一个集中位置,否则一个网络服务器将无法知道哪些用户登录到另一个网络服务器。
假设:您正在尝试阻止单个用户同时进行多个登录。
登录和注销时的数据库操作不会导致性能问题。
- 如果您使用缓存代理,则会导致问题:
- 用户将注销,但在注销到达缓存之前无法重新登录
您最大的潜在问题可能是:
- 如果应用程序/盒子崩溃而用户没有机会注销,则数据库中的用户状态将保持“已登录”。
这取决于身份验证的方式。如果您存储最后一次成功登录的日期时间(无论后端如何),那么也许您可以更改架构以存储标志“logged_in”,并且这不会涉及额外的性能成本。(好吧,一点也不干净)
不隶属于 StackOverflow