uri*_*rig 52 session scalability load-balancing sticky
高可扩展性的一种方法是使用网络负载平衡来分割多个服务器之间的处理负载.
这种方法提出的一个挑战是服务器是状态感知的 - 将用户状态存储在"会话"中.
该问题的一个解决方案是"粘性会话"(又名"会话亲和性"),其中每个用户被分配给单个服务器,并且他/她的状态数据在整个会话期间专门包含在该服务器上.
"粘性会话"方法的优点和缺点是什么?你是否使用它,如果是这样,你对它感到满意吗?
Jus*_*ant 73
优点:
缺点:
但是如果你必须使用服务器本地会话状态,那么粘性会话绝对是可行的方法 - 即使你不使用服务器本地会话状态,粘性也会带来好处(参见上文).您的负载均衡器应该能够查看HTTP cookie(不仅是IP地址)以确定粘性,因为IP地址可以在单个会话期间发生变化(例如,在有线和无线网络之间对接笔记本电脑).
更好的是,根本不要在Web服务器上使用会话状态!如果会话状态非常痛苦(例如购物车),请将其存储在中央数据库中并定期清除旧会话.如果会话状态不重要(例如用户名/头像URL),则将其粘贴在cookie中 - 只需确保您没有将过多的数据推入cookie中.
默认情况下,现代版本的Rails会将会话变量存储在cookie中,原因如上.其他Web框架可以具有"以cookie存储"和/或"以DB存储"选项.
| 归档时间: |
|
| 查看次数: |
28470 次 |
| 最近记录: |