咨询求助:关于AD使用了源IP会话保持时间过长导致分发策略失效的问题
我司网站门户共计3台服务器,每台服务器开启2个IP,每个IP开启4个端口进程,使用AD为其负载均衡,对负载均衡来说,这就是24个节点。
在AD统计上来看,分发很不均衡,最多15%,最少的只有3%。
分发算法选择加权最小连接,结合源IP会话保持30分钟。
经咨询1线2线工程师,给出的建议不同,2线建议使用Cookie进行会话保持。优选跟随浏览器关闭删除Cookie方式。1线工程师建议必须修改会话超时时间,这个时间太长。分发改轮询。
现在存在疑问和个人理解如下,请给予分析我自行理解是否正确:
1.改轮询或加权最小连接不改,解决余地不大,主要问题在于源IP会话保持时间。
只要是会话保持选项存在,那么在会话保持时间内,同源发送的连接都会被转发至同一节点,源IP会话保持相当于更改了AD的工作机制,即:
无论当前所有节点现存多少连接,存在的连接即表示未超出会话保持时限,则新来连接时,都认为现存连接数不计入转发选举机制中,这样就是分发算法失效。
换句话说,无论现有节点有多少现有连接,新来连接进行节点转发选举时,遵循的基本原则相当于,所有节点现存连接都为0为基准进行选举。
这个理解对不对?请指正。
那么加权最小连接分发方式,在所有节点连接数相等时,选择新连接的原则是轮询还是按照节点建立次序还是随机?
请给予解答。
2.如果更改Cookie方式进行会话保持,则会有客户端禁用Cookie方式则无法登陆系统交互的问题,反复登陆,这样故障点到了客户端,基于使用体验的投诉就会增加。
如果进一步妥协,不使用浏览器关闭则删除Cookie方式,使用基于Cookie超时,例如设为30分钟,那么选择最小连接,是不是原来问题都一样?
请解答。
3.为了验证理论,我做了以下试验服务器IP及端口设置如下
对外公网IP绑定如下服务器,
10.1.1.1-10.1.1.3的9080-9083现网站正常工作。
测试步奏如下: 1)先设置服务test888,建立了888端口,建立一个地址test888,建立节点池,将现存于主网站的10.1.1.1-10.1.1.2的9080-9083加入,共计8个节点。分发策略选择加权最小连接,权重均为1.会话保持策略选源IP保持30分钟。
使用绑定地址访问该测试节点,提示无法连接,或网页无法访问。 百思不得其解, 2)将test888的端口由888改为80后,测试正常。 这时,分发策略选择加权最小连接,权重均为1.会话保持策略选源IP保持30分钟。 使用浏览器,每次清空所有缓存和Cookie测试。3个IP均连接至10.1.1.2:9083节点,
3)将分发方式改为轮询,会话保持策略选源IP保持30分钟。 使用浏览器,每次清空所有缓存和Cookie测试。3个IP均仍旧连接至10.1.1.2:9083节点,
4)将分发方式改为轮询,去掉会话保持选项。
使用浏览器,每次清空所有缓存和Cookie测试。3个IP均正常访问到网站页面,但是使用节点调度查询,显示无调度。
5)将分发方式改为加权最小连接,去掉会话保持选项。
使用浏览器,每次清空所有缓存和Cookie测试。3个IP均正常访问到网站页面,但是使用节点调度查询,显示无调度。
6)将分发方式改为加权最小连接,使用基于Cookie,浏览器关闭删除Cookie方式。
使用浏览器,每次清空所有缓存和Cookie测试。3个IP均正常访问到网站页面,但是使用节点调度查询,显示无调度。
7)将分发方式改为加权最小连接,使用基于Cookie30分钟方式。
使用浏览器,每次清空所有缓存和Cookie测试。3个IP均正常访问到网站页面,但是使用节点调度查询,显示无调度。
8)将分发方式改为加权最小连接,再使用源IP会话保持30分钟。
使用浏览器,每次清空所有缓存和Cookie测试。3个IP均仍旧连接至10.1.1.2:9083节点。
疑问:
1)为何只有源IP30分钟才能使用AD的节点调度功能查询到调度到了哪里?
2)我做的测试有没有问题?方法不对?
3)由此推测,使用源IP会话保持时,无论选择轮询还是最小连接,都会调度到最后连接的那个节点,无论源IP是否相同,那么是否我的推断,启用源IP会话保持时,新来连接的选择基准是最后一次保证好用的那个连接优先连接,这个推论是否正确?
期盼解答
非常感谢!
|