我们在正在分片的应用程序中使用 Codeigniter。这涉及跨用户 ID 拆分数据库。分片数据库中有两种表 - 一种是按用户 ID 分片的,因此数据在多个分片中均匀分布,另一种是全局的,其中数据在所有分片之间复制。我们当然也是负载平衡的,所以使用默认的 php 会话是行不通的。
我们喜欢 CI 会话数据库的安全性,但我们不能对它进行分片,我们将严重打击该表,并且它将在所有分片中来回疯狂地复制。这不是一个好情况。我们的负载测试表明 ci_sessions 表已经是一个痛点。
我们有几个策略来处理它。第一,因为我们将 propel 用于 ORM,我们可以轻松地将使用 CI 数据库访问层的 ci_sessions 拆分为它自己的数据库。如有必要,我们甚至可以对那个进行分片。
我想知道人们是否会提出其他替代方案?