知识卡片
Hash负载均衡解决的是会话粘性问题
内容
源地址Hash或session id Hash类负载均衡算法,核心目的不是分摊压力,而是保证”同一用户/会话的请求始终落到同一台服务器”,对把会话状态存在服务器本地内存(而非集中存储)的业务是必需的,如网银登录期间的临时会话数据。发散:只要某组件需要”记住上次请求状态”就是有状态的,要么靠路由一致性兜底,要么把状态外置到集中存储让服务器无状态,两条路径互斥但都能达到目的。
参考来源
- 位置:《从0开始学架构》第25章《21|高性能负载均衡:算法》"Hash类"一节(源文件:_epub-src/OEBPS/Text/part0024_split_006.html)
- 结论依据:原文以网银登录为例说明源地址Hash"适合于存在事务、会话的业务……网上银行后台无须持久化会话信息,只需要在某台服务器上临时保存这个会话就可以了,但需要保证用户在会话存在期间,每次都能访问到同一个服务器,这种业务场景就可以用源地址Hash来实现"。
- 原始内容:将来源于同一个源IP地址的任务分配给同一个服务器进行处理,适合于存在事务、会话的业务。例如,当我们通过浏览器登录网上银行时,会生成一个会话信息……网上银行后台无须持久化会话信息,只需要在某台服务器上临时保存这个会话就可以了,但需要保证用户在会话存在期间,每次都能访问到同一个服务器。