粘性会话的负载平衡

问题描述

我已将AWS Application-Load-Balancer配置为启用了粘性会话和最低未完成请求路由算法的目标组。我得到任何建立的粘性会话的请求都被路由到附加的目标服务器(如果有)。同样,路由算法会根据活动请求的数量为传入请求选择最佳目标。来自新会话的新请求就是这种情况,其粘性尚未建立。

考虑一个假设情景。
我有3个后端服务器(具有粘性会话)Server1,Server2,Server3。每个服务器的最大容量为 200个活动请求
将它们在特定时间点正在服务(和负载)的活动请求视为
Server1具有150(75%)个活动请求
具有2个(100%)活动请求的Server2
Server3的活动请求为180(80%)

注意:并非所有附加到相应服务器的粘性会话都具有活动请求。
例如: Server2可能具有多个其他附加会话,这些会话当前未处于请求状态送达。

当来自新会话sessionX的请求到达时,应将其路由到“基于配置的LOR算法的Server1”,因为Server1的活动请求最少。

另一方面,当来自粘性会话sessionN-Server2的请求到达时,Server2仍在处理该请求。 LOR算法在这种情况下无效。我的理解正确吗?

是否有更好的方法来处理这些情况?甚至还有一种智能算法,可以在路由流量时考虑与服务器关联的粘性会话的数量

总结:

  1. LB应该将传入的请求路由到连接了总会话数较少的服务器

  2. 如果粘性服务器过载,则LB应该找到最佳服务器(即使对于粘性请求)。在这种情况下,旧服务器的粘性消失了,而是找到了新服务器。

这些甚至有效吗?如果是这样,市场上是否有此类策略可用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...