Gro*_*ain 3 coldfusion session
我有一个cfc来处理用户对象.我的问题是:在会话中只存储user_id并在每次请求时重新创建用户对象更好吗?或者最好将整个用户对象存储在会话中?
以下是我的想法:
如果我将整个对象存储在会话中:
如果我只在会话中存储user_id:
这种事情有正常的做法吗?我是在过度思考吗?
我编写的所有CF应用程序都针对高流量和高可用性,因此我们从未考虑过单一服务器实践.
因此,根据我的经验,我总是不得不a)允许多个负载均衡的服务器,以及b)出于多种原因避免负载均衡器上的粘性会话.因此,我们至少需要让服务器成为集群中的一部分,并获取会话中的流量.
因此,我们总是在每个请求中从共享数据存储中提取"会话"数据.
我的建议是实现一个会话门面.
这使您可以选择更改会话数据(如用户记录)的持久性,而无需更改应用程序的其余部分.
您可以在后台选择将所有内容存储在会话范围内,为每个请求加载,执行混合,使用键值存储等等.
您可以选择是否加载数据,延迟加载数据或其间的任何混合,并且应用程序的其余部分无需了解您已完成的操作.
如果您关注竞争条件,那么我建议在数据提交和访问时使用命名锁.这是使用外观的另一个好处 - 您的应用程序代码不需要知道这一点,并且您可以选择将锁定放在某些对象周围,而不是锁定整个会话.
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |