会话保持是指在负载均衡上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。简单表述就是:在一次会话过程中发起的多个请求都会分配到同一台机器上。
今天在AD的学习过程中看到了会话保持的几个选项,其中常用的是SourceIP与Cookie两项,他们之间有什么区别呢?通过查询各种资料总结如下:
SourceID即源地址会话保持,是指利用客户端的源地址信息,负载均衡会将所有来源于相同源IP的连接认为是相同的客户端,并将这些连接转发至相同的服务器进行处理。源地址会话保持是一种非常简单,但又十分高效的会话保持机制,缺点是当大量的客户端共享同一个NAT地址访问服务器资源时,会造成某台服务器的负载分配过高,当客户端数量巨大时也可能会造成会话保持表被耗尽。
Cookie会话保持是利用HTTP协议中的Cookie功能来实现会话保持功能,当客户端的请求中带有负载均衡设置的Cookie信息,则负载均衡根据cookie中的信息来选择服务器,当客户端的请求中没有cookie信息,则负载均衡按照算法选择服务器,同时在服务器响应的response头部中插入cookie信息,这样,当该客户再次访问服务器时,可以确保该客户端的请求会被转发到相同的服务器。
相对于SourceIP会话保持机制,cookie会话保持机制能够更加准确的识别客户端,避免了大量客户端共享同一个NAT地址访问服务器时源地址会话保持会造成单台服务器负载过高的问题,但cookie会话保持也有他自身的限制,首先cookie会话保持只能在B/S架构中使用,其次如果浏览器不支持cookie,即使配置了cookie会话保持机制也不会起到相应的作用。
了解了SourceIP与Cookie的区别,接下来在创建节点池的过程中就可以根据应用的特点去选择相应的会话保持选项。不当之处望各位技术大神多指教。 |