1

我们在正在分片的应用程序中使用 Codeigniter。这涉及跨用户 ID 拆分数据库。分片数据库中有两种表 - 一种是按用户 ID 分片的,因此数据在多个分片中均匀分布,另一种是全局的,其中数据在所有分片之间复制。我们当然也是负载平衡的,所以使用默认的 php 会话是行不通的。

我们喜欢 CI 会话数据库的安全性,但我们不能对它进行分片,我们将严重打击该表,并且它将在所有分片中来回疯狂地复制。这不是一个好情况。我们的负载测试表明 ci_sessions 表已经是一个痛点。

我们有几个策略来处理它。第一,因为我们将 propel 用于 ORM,我们可以轻松地将使用 CI 数据库访问层的 ci_sessions 拆分为它自己的数据库。如有必要,我们甚至可以对那个进行分片。

我想知道人们是否会提出其他替代方案?

4

1 回答 1

0

不使用 db 会话或 html5 会话/本地存储怎么办?:)

或使用 cookie 设置自定义变量或 ID 或域路径?

无论如何,这取决于您需要为每个用户提供多少会话/cookie 大小,确保 db 将保证更多空间和更好的安全性。

无论如何我都喜欢 mongodb:D https://github.com/sepehr/ci-mongodb-session

于 2012-12-29T21:47:47.093 回答