所以我有这个网络应用程序,理论上它有朝一日可能成为付费应用程序——如果有人真的觉得它有用且值得的话。
我有处理付款的所有逻辑,检查帐户是否逾期等。它全部存储在 RavenDB(实际上是 RavenHQ)中——这与手头的问题无关。
现在,我正在尝试遵循最佳实践,并且我希望我的应用程序具有高性能,即不是微优化,但我希望以一种能够随着负载相对较好地扩展的方式来做事(如果它起飞,它将被托管- 我希望不必为超过严格必要的服务器付费)。
我的应用程序使用接近默认登录/帐户模型的东西。用户通过 https 使用表单身份验证安全登录。
我应该在什么时候检查用户是否真的被允许(关于支付状态等 - 一个领域模型问题真的)使用 Web 应用程序?考虑到这将意味着从 RavenDB 后端请求单个文档并检查当前付款期限是否已过期。
我是不是该:
每次用户登录时检查,让他们超过x小时无法“记住我”,其中x是一个相对较小的数字?
签入一些用户相对经常访问的中央控制器操作 - 如果这些操作不可用,应用程序将基本上受到严格限制。
执行一个全局操作过滤器,检查每个请求,然后重定向到“Pay nooooow!” 东西过期后的页面?
另外一个选项?
RavenDB 做了聪明的缓存,所以我不认为对这个文档的请求会影响性能,但是如果应用程序真的起飞(不太可能,但可以梦想),每个 http 请求的额外数据库请求可能会导致 Ayende 追捕我倒下并无情地殴打我。我不想要那个。
在我看来,这是其他人会考虑并解决的问题,所以我在问 - 处理这个问题的正确方法是什么?
感谢您的任何见解!