文档介绍:--------------------------校验:_____________-----------------------日期:_____________负载均衡和会话保持A10负载均衡和会话保持在大多数的企业级应用中,客户端与服务器经常需要通过多次的交互才能完成一次事务处理或一笔交易。由于这些交互与用户的身份是紧密相关的,因此,与这个客户端相关的应用请求,往往需要转发至一台服务器完成,而不能被负载均衡器转发至不同的服务器上进行处理。为了实现这一机制,我们需要在负载均衡上配置会话保持(SessionPersistence)机制,以确保客户端与应用系统之间的交互不会因为部署了负载均衡而发生问题。实际上,会话保持机制与负载均衡的基本功能是完全矛盾的。负载均衡希望将来自客户端的连接、请求均衡的转发至后端的多台服务器,以避免单台服务器负载过高;而会话保持机制却要求将某些请求转发至同一台服务器进行处理。因此,在实际的部署环境中,我们要根据应用环境的特点,选择适当的会话保持机制。 连接和会话的区别在介绍会话保持技术之前,我们必须先花点时间弄清楚一些概念:什么是连接(Connection)、什么是会话(Session),以及这二者之间的区别。需要特别强调的是,如果我们仅仅是谈论负载均衡,会话和连接往往具有相同的含义。但是,如果我们和开发人员沟通这些术语时,这两个术语却具有截然不同的含义。希望广大读者能够注意这其中的区别。在本文中,我想着重说明的是开发人员眼中的连接及会话的含义。通常,在普通的客户端或服务器上,我们把具有相同[源地址:端口],和相同[目的地址:端口]的数据包定义为一个连接。stat–an输出的部分系统连接状态。 C:\>netstat -an   活动连接    协议 本地地址          外部地址        状态  ...<省略部分输出内容>... ...<省略部分输出内容>... 对于负载均衡来说,情况则稍微发生了一些变化。负载均衡会将来自相同[源IP:端口],发送到相同[目的IP:端口]的数据包,通过NAT技术做一些转换后,转发至后端的某台固定的服务器。如下表所示,虽然两个TCP连接具有相同的源地址,但源端口不同,AX负载均衡仍然将其识别为两个不同的连接,并且转发至两台不同的服务器进行处理。 AX#show session ...<省略部分输出内容>...   Prot Forward Source         Forward Dest           Reverse Source         Reverse Dest           Age Hash -----------------------------------------------------------------------------------------------------------   ...<省略部分输出内容>... 对于同一个连接中的数据包,负载均衡会将其进行NAT转换后,转发至后端固定的服务器进行处理,这是负载均衡最基本、最原始的功能。负载均衡系统内部会专门有一张表来记录这些连接的状况,包括:[源IP:端口]、[目的IP:端口]、[服务器IP:端口]、空闲超时时间(IdleTimeout)等等。这里需要特别说明一下超时时间