Dav*_*vid 6

水平缩放VS的一个简单例子.垂直扩展只是与数据库的

给定一个这样的示例应用程序:应用程序有许多客户端,每个客户端有多个用户.

更新:没有客户需要知道另一个客户端,每个用户只属于一个客户端

垂直缩放:

客户端数据存储在标准化的基于SQL的数据库中.所有用户的用户凭据都存储在client_users表中.

优点

  1. 最短的发展阻力路径
  2. 相对容易保持完整性
  3. 易于备份

问题:

由于所有客户端凭据都与相关数据一起存储在此表中,因此要保持或提高性能,需要使用更多资源来增强数据库层,或者为这一个主机投入更多的从属服务器.

水平缩放:

每个客户端都存在于前缀表模式中.client_users成为client01_users

优点

具有数据库管理中级技能的人可以编写一个简单的脚本,在大约5分钟内将客户端#_*表复制到新的数据库服务器(然后再进行另一个小时的完整性检查/测试/验证).通过这种方式,您可以将低流量客户端推送到超量预订的服务器上,并从基础架构节省中获利,同时为需要专用硬件的高流量客户端充电.

问题

  1. 如果没有共享任何技术不包括自动化和模式变更管理系统,维护/开发时间可以完全延伸到完全遗忘和开发瘫痪.
  2. 添加/删除列这样的简单任务将需要更长的时间来执行,因为您必须在多个表/机器上执行此操作,以便与软件更改保持同步.
  3. Backup有时会变得非常有趣

摘要

如果在一开始我可以看到一个没有共享的机会,我会努力实现这一目标.对于具有扩展问题的新客户,在签订合同后,我的初始提案将包括重构以合并分片或不共享主体.在我看来,如果正确处理/处理,可以管理额外的复杂性.