从银行柜台小姐姐聊负载均衡中的会话粘滞

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 从银行柜台小姐姐聊负载均衡中的会话粘滞

从银行柜台小姐姐聊负载均衡中的会话粘滞

上回我们讲到了开盲盒,这次我们来处理一下昨天的遗留问题,关于最后提到的服务器优化,不知道你是否想到一些东西呢?如果没想到也没关系,我们先来聊聊银行业务员小姐姐那些事~

负载均衡 - 会话粘滞

同一个客户端的所有请求都路由到同一个服务器上,也就是会话粘滞(session sticky)的负载均衡算法。这玩意就像你去银行办理业务,银行柜台有一堆业务员小姐姐,她们都像是一个个的服务器,你来银行办理业务,表达自己的需求,你就是那个发送请求的客服端,有时候还不止办理一种业务,这时候就存在多个请求。刚开始那会银行业务不多,给每个小姐姐分配了一批客户,这时候你来银行办业务,只要去找那个给你分配好的小姐姐就可以了,是不是感觉还挺方便的。这就是保持映射关系。

放在系统中,最简单的方法就是在数据库创建一张映射表,维护会话ID和服务器的映射关系,客户端发出的每次请求,都要在映射表中查找需要路由的服务器编号,然后通过把请求发给对应编号的服务器上面,方法实现比较简单。

但是有两个问题:

  1. 维护映射表需要额外的空间,随着会话ID的越来越多,占用的空间也会越来越多;
  2. 服务器的下线和上线都会对映射表产生影响,这时候需要重新维护映射表的,维护成本比较大。你想啊,有一天,有个小姐姐突然回家结婚去了,这就会有一堆客户就失去了业务员,这时候为了提高客户的满意度,就要立马修复这个问题,免不了要重新调整一下客户和业务员的关系。


这时候是不是有什么更优雅的办法解决问题呢?

有一天银行,发现这样搞下去不行啊,于是引进了一台可以取号的机器,每个用户在处理业务之前,先去取个号,这个编号就是对应柜台业务员的编号,来了银行先取号,在你所有的业务处理完之前这个号码都是有效的。

这时候如果有业务员小姐姐暂停服务,处理起来就很简单了,让客户取不到这个号码就可以了,不再需要重新维护客户的业务员之间的关系。

系统中可以通过哈希算法,对客户端地址或者会话ID 计算哈希值,将取得的哈希值和服务器列表的数量进行取模运算,最终得到的值(也就是取号机发放的号码就是应该被路由到的服务器编号。这样也可以保证同一个客户端过来的所有请求路由到同一个后端服务器上。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
负载均衡
负载均衡-会话保持cookie内容说明
负载均衡http监听采用植入cookie时,默认会加入一个cookie,他的具体含义是什么呢? SERVERID=abd77a4088910c05c7d6517601bb198d|1570633089|1570632657;Path=/" 其中SERVERID这个cookie是负载均衡内部使用,建...
1897 0
|
负载均衡 网络协议 API
|
6月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
211 21
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
284 2
|
11月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
705 3

热门文章

最新文章

相关实验场景

更多