




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A10负载均衡和会话保持在大多数的企业级应用中,客户端与服务器经常需要通过多次的交互才能完成一次事务处理或一笔交易。由于这些交互与用户的身份是紧密相关的,因此,与这个客户端相关的应用请求,往往需要转发至一台服务器完成,而不能被负载均衡器转发至不同的服务器上进行处理。为了实现这一机制,我们需要在负载均衡上配置会话保持(Session Persistence)机制,以确保客户端与应用系统之间的交互不会因为部署了负载均衡而发生问题。实际上,会话保持机制与负载均衡的基本功能是完全矛盾的。负载均衡希望将来自客户端的连接、请求均衡的转发至后端的多台服务器,以避免单台服务器负载过高;而会话保持机制却要求将某些请求转发至同一台服务器进行处理。因此,在实际的部署环境中,我们要根据应用环境的特点,选择适当的会话保持机制。连接和会话的区别在介绍会话保持技术之前,我们必须先花点时间弄清楚一些概念:什么是连接(Connection)、什么是会话(Session),以及这二者之间的区别。需要特别强调的是,如果我们仅仅是谈论负载均衡,会话和连接往往具有相同的含义。但是,如果我们和开发人员沟通这些术语时,这两个术语却具有截然不同的含义。希望广大读者能够注意这其中的区别。在本文中,我想着重说明的是开发人员眼中的连接及会话的含义。通常,在普通的客户端或服务器上,我们把具有相同源地址:端口,和相同目的地址:端口的数据包定义为一个连接。下表是Windows系统中用命令 netstat an输出的部分系统连接状态。1. C:netstat-an2. 3. 活动连接4. 5. 协议本地地址外部地址状态6. 7. .8. TCP3:4766940:80ESTABLISHED9. TCP3:4767040:80ESTABLISHED10. TCP3:4767140:80ESTABLISHED11. TCP3:4767238:80TIME_WAIT12. TCP3:4767338:80TIME_WAIT13. TCP3:4767438:80TIME_WAIT14. TCP3:4767540:80ESTABLISHED15. TCP3:4767640:80ESTABLISHED16. TCP3:4767740:80ESTABLISHED17. TCP3:4767905:80ESTABLISHED18. TCP3:4768140:80ESTABLISHED19. TCP3:4768240:80ESTABLISHED20. TCP3:4768340:80ESTABLISHED21. TCP3:4768440:80ESTABLISHED22. TCP:182319:443CLOSE_WAIT23. .对于负载均衡来说,情况则稍微发生了一些变化。负载均衡会将来自相同源IP:端口,发送到相同目的IP:端口的数据包,通过NAT技术做一些转换后,转发至后端的某台固定的服务器。如下表所示,虽然两个TCP连接具有相同的源地址,但源端口不同,AX负载均衡仍然将其识别为两个不同的连接,并且转发至两台不同的服务器进行处理。1. AX#showsession2. .3. 4. ProtForwardSourceForwardDestReverseSourceReverseDestAgeHash5. -6. Tcp22:161951:803:8022:16196017. 8. Tcp22:16251:804:8022:162112039. 10. .对于同一个连接中的数据包,负载均衡会将其进行NAT转换后,转发至后端固定的服务器进行处理,这是负载均衡最基本、最原始的功能。负载均衡系统内部会专门有一张表来记录这些连接的状况,包括:源IP:端口、目的IP:端口、服务器IP:端口、空闲超时时间(Idle Timeout)等等。这里需要特别说明一下超时时间的意义和定义。由于负载均衡内部记录连接状态的这张表需要消耗系统的内存资源,因此,这张表不可能无限大,所有厂家都会有一定的限制。这张表的大小一般称之为最大并发连接数,也就是系统同时能够容纳的连接数量。考虑到建立这些连接的客户端或服务器会发生一些异常状况,导致这些连接不能被正常终结掉,因此,负载均衡的当前连接状态表项中,设计了一个空闲超时时间的参数。这个参数定义为,当该连接在一定时间内无流量通过时,负载均衡会自动删除该连接条目,释放系统资源。在AX中,这个空闲超时时间一般设置为120秒。也就是说,如果在120秒内,对于某个连接,AX没有收到任何来自客户端或服务器端的数据包,AX会主动删除该连接,以释放系统资源。之所以在这里强调这个参数,是为了和后面介绍会话保持机制时提到的会话保持时间有所区别。理解了连接的概念,那么对于会话的概念就会比较容易理解一些。在开发人员眼中,会话一般是指从用户登录应用系统,进行事务处理,直至退出应用系统的整个过程。因此,对于相同的会话,客户端可能会建立多个连接进行处理。如果在客户端和服务器之间部署了负载均衡设备,很有可能,这多个连接会被转发至不同的服务器进行处理。如果服务器之间没有会话信息的同步机制,会导致其他服务器无法识别用户身份,造成用户在和应用系统发生交互时出现异常。常见的异常场景包括:客户端输入了正确的用户名和口令,但却反复跳到登录页面,要求用户进行登录,客户端放入购物篮的物品丢失。因此,会话保持机制的意义就在于,确保将来自相同客户端的请求,转发至后端相同的服务器进行处理。换句话说,就是将客户端与服务器之间建立的多个连接,都发送到相同的服务器进行处理。常见的会话保持机制介绍源地址会话保持源地址会话保持利用客户端的源地址信息,负载均衡会将所有来源于相同源IP的连接认为是相同的客户端,并将这些连接转发至相同的服务器进行处理。当我们启用了源地址会话保持机制后,AX负载均衡在收到新的连接请求时,会首先查询系统的源地址会话保持表,如果查询到该IP地址对应的服务器表项,则根据当前表项对应的服务器建立连接,如果没有查询到该源IP对应的服务器,则根据当前配置的算法选择服务器。同时,会将当前连接对应的服务器记入源地址会话保持表。这样,当该源IP有新的连接请求时,就会根据该表项选择后端的服务器资源。源地址会话保持机制是一种非常简单但又十分高效的会话保持机制。但是,正是这种简单,又造成负载均衡无法很准确的识别客户端,造成后端服务器负载分配不均匀。尤其是当大量的客户端共享同一个NAT地址访问服务器资源时,会造成某台服务器的负载分配过高。同时,由于负载均衡系统内部保存会话保持表也会占用一定的资源,因此,当客户端数量巨大的时候,可能会造成会话保持表被耗尽的问题。Cookie会话保持Cookie会话保持是利用HTTP协议中的cookie功能来实现会话保持功能。当客户端的请求中带有负载均衡设置的cookie信息,则负载均衡根据cookie中的信息来选择服务器;当客户端的请求中没有cookie信息,则负载均衡按照算法选择服务器,同时,在服务器响应的response头部中,插入cookie信息。这样,当该客户端再次访问服务器时,可以确保该客户端的请求会被转发到相同的服务器进行处理。相较于源地址会话保持机制来说,cookie会话保持能够更加精准的识别客户端,避免了大量客户端共享同一个NAT地址访问服务器资源时,源地址会话保持造成的单台服务器负载过高的问题。此外,负载均衡通过分析客户端请求中的cookie信息来决定服务器选择,因此,负载均衡无需在系统中维护会话表项,因此,没有会话表项数量的限制。但是,cookie会话保持机制却比源地址会话保持存在更多的限制。首先,cookie会话保持只能够在B/S架构的应用中使用,也就是说,cookie会话保持只能够工作在HTTP协议下。道理很简单非HTTP协议并不支持cookie插入。其次,如果浏览器不支持cookie,即便配置了cookie会话保持机制,cookie会话保持机制也不会起到应有的效果。第三,由于cookie会话保持机制中,需要根据负载均衡当前的系统时间来计算一个过期时间,并把该时间设置为cookie失效的时间,因此,负载均衡的系统时间不能有太大误差,否则,会话保持机制有可能会失效。对于第三个问题,我们考虑一种场景,当负载均衡的系统时间比正常的时钟慢20分钟,而会话保持的超时时间设置为15分钟,则客户端在收到负载均衡插入的cookie后,会认为该cookie已经失效,则在后续的http请求中,不会带有负载均衡插入的用于会话保持的cookie。注意:这里的cookie是A10插入的,不是应用服务器返回HTTP响应时插入的!在用loadrunner测试A10负载均衡功能和性能时,需要增加A10插入的的cookie。在录制LR脚本时,可以先打开应用页面,然后在页面上进行几次其他操作,然后录制好的脚本里会自动加上cookie,包括应用返回的和A10插入的:web_add_cookie(sto-id-10531=EOMKJDAKCJCD; DOMAIN=38);web_add_cookie(PHPSESSID=7d52ff757b92; DOMAIN=38);测试时保留A10插入的cookie(sto-id-10531)就可以进行负载均衡测试。由于A10上插入cookie后,会有时效性,因此在A10上把过期时间改大并且要尽快测试;另外,A10插入的cookie中sto-id-10531=EOMKJDAKCJCD的值不是会话级的(不是每个会话对应一个值,而是可以看成服务器主机的标识),每个主机对应一个sto-id-10531的值。首次访问请求到达A10时,A10会根据一系列负载均衡策略选择服务器主机,并且在响应时插入cookie(即插入主机标识),后续该客户端再发送请求时,会带上这个cookie(主机标识),A10收到后直接按照这个标识进行转发。简单总结一下这两种常见的会话保持机制的优缺点:方法优点缺点适用场景源地址会话
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国湿地挖掘机行业市场现状供需分析及投资评估规划分析研究报告
- 2025年木板材加工项目申请报告模范
- 2025年收获后处理机械项目申请报告模板
- 苗木采购合同的条款设计
- 香水买卖合同
- 在线工作制度协议
- 电子商务居间合同范本
- 2025年中国单门烤箱项目投资可行性研究报告
- 2025年金融行业反洗钱技术与监管科技融合前景报告
- 2025年家庭教育指导服务市场供需关系与政策环境影响报告
- 深圳2020-2024年中考英语真题复习专题01 语法填空(解析版)
- 2024年大学生电子版三方协议书模板
- GB/T 25216-2024煤与瓦斯突出危险性区域预测方法
- 日晷项目评价分析报告
- GB/T 29038-2024薄壁不锈钢管道技术规范
- 婚房布置合同(2篇)
- 人教版小学数学五年级下册课件:《总复习》分数的加法和减法课件
- 3.4沉淀溶解平衡及影响因素的探究课件高二上学期化学人教版选择性必修1
- 融合教育教师培训课件
- 2024年全国土地登记代理人之地籍调查考试重点试卷(详细参考解析)
- 低空经济解决方案
评论
0/150
提交评论