扩充(Scaling)
如果你预料到会有大流量到应用程序(或者更好的是,你已经拥有大流量!),你要建立一个可扩充的架构,让应用程序可以随著越来越多人使用而进行扩充。
效能基准(Benchmarks)
在大多数情况下,Sails 效能与任何 Connect、Express 或 Socket.io 应用程序相同。这已在几个不同的场合下被证实,最近一次是在这里。如果你有自己的效能基准想和大家分享,请在 Github 发送 pull request 到本页面。
例子架构
               Sails.js 服务器
                     ....                 
            /  Sails.js 服务器  \      /  资料库(如 Mongo、Postgres 等)
负载平衡器  <-->    Sails.js 服务器    <-->    Socket 储存区(Redis)
            \  Sails.js 服务器  /      \  会话(Session)储存区(Redis)
                     ....                 
               Sails.js 服务器
设置应用程序的丛集部署
- 确保模型所使用的资料库(如 MySQL、Postgres、Mongo)具有可扩充性(如分片丛集)
 - 设置应用程序使用共享的会话(Session)储存区
- 内建支持 redis(查看 
config/session.js内的adapter选项) 
 - 内建支持 redis(查看 
 - 如果你使用 SOCKETS:
- 设置应用程序使用共享的 socket 储存区
 - 内建支持 redis(查看 
config/sockets.js内的adapter选项) - 注意:如果你不想设置 socket 储存区,这种状况下可行的解决方案是在负载平衡器使用黏性会话(sticky sessions)。
 
 - 确保应用程序可能会使用的其他相依功能没有依赖于共享记忆体。
 
部署 Sails 丛集到多台服务器
- 在负载平衡器之后部署多个实例(又称服务器执行应用程序的副本)
- 在每个实例使用 
forever启动 Sails - 更多关于负载平衡器的资讯:http://en.wikipedia.org/wiki/Load_balancing_(computing)
 
 - 在每个实例使用 
 - 设置负载平衡器终止 SSL 请求
- 因为传输已经被解密,你不需要在 Sails 使用 SSL 设置