我们在一个正在被分片的应用中使用Codeigniter。这涉及到将数据库拆分到多个用户ids。在分片的数据库中有两种表-一种是按用户id进行分片的,因此数据平均分布在多个分片中;另一种是全局表,其中数据跨所有分片进行复制。当然,我们也是负载均衡的,所以使用默认的php会话是行不通的。
我们喜欢CI会话数据库,因为它的安全性,但我们不能对其进行分片,我们将对该表造成很大的冲击,并且它将在所有分片之间疯狂地来回复制。这不是一个好的情况。我们的负载测试表明,ci_sessions表已经是一个痛点。
我们有几个策略来处理它。首先,因为我们使用propel进行对象关系管理,所以我们可以很容易地将使用CI的数据库访问层的ci_sessions拆分成它自己的DB。如果有必要,我们甚至可以对其进行分片。
我想知道人们会不会有其他的建议?
发布于 2012-12-30 05:47:47
如果不使用数据库会话或html5会话/本地存储呢?:)
或者使用cookie设置自定义变量、ids或域路径?
无论如何,这取决于每个用户需要多少会话/cookie大小,确保db将保证更大的空间和更好的安全性。
无论如何,我爱mongodb :D https://github.com/sepehr/ci-mongodb-session
https://stackoverflow.com/questions/14073161
复制相似问题