在公司内部项目中常常用到F5,但因为对于F5实现负载均衡原理不是很清晰,在项目实战中遇到不少问题。好比:一个会话链接无端被中断,设置会话保持后,后端应用节点出现严重不均衡状况等等,因此特地回顾和整理了有关F5的相关技术资料,对于后续你们选择合适的负载均衡策略和会话保持方式提供参考依据,以避免后续走弯路。算法
一:什么是F5?后端
F5为一家公司,英文公司名:F5 Networks:应用交付网络(ADN)的全球领导者。F5提供的解决方案保证每一个用户的应用实现安全、高速和高可用,帮企业得到最大投资回报。本文只学习F5公司提供的网络负载均衡设备BIG/IP运行原理。安全
二:什么是负载均衡?服务器
负载均衡技术在现有网络结构之上提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的带宽、增长吞吐量、增强网络数据处理能力、提升网络的灵活性和可用性。它有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减小用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上作并行处理,每一个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力获得大幅度提升。 网络
BIG/IP利用定义在其上面的虚拟IP地址来为用户的一个或多个应用服务器提供服务。所以,它可以为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。BIG/IP连续地对目标服务器进行L4到L7健康性检查,当用户经过VIP(虚拟IP)请求目标服务器服务时,BIG/IP根椐目标服务器之间性能和网络健康状况,选择性能最佳的服务器响应用户的请求。 并发
三:什么是会话保持?负载均衡
会话保持就是指在负载均衡器上有这么一种机制,能够识别作客户与服务器之间交ide
互过程的关连性,在做负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。性能
在大多数电子商务的应用系统或者须要进行用户身份认证的在线系统中,一个客户与服务器常常通过好几回的交互过程才能完成一笔交易或者是一个请求的完成。因为这几回交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,每每须要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操做时须要这就要求全部这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不一样的服务器上(不然的话,连接会无响应或报错)。学习
四:如何实现负载均衡?即负载均衡算法有哪些?
静态负载均衡算法包括:轮询,比率,优先权
动态负载均衡算法包括: 最少链接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式。
(1)静态负载均衡算法
轮询(Round Robin):顺序循环将请求一次顺序循环地链接每一个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。
比率(Ratio):给每一个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每一个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。
优先权(Priority):给全部服务器分组,给每一个组定义优先权,BIG-IP 用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中全部服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。
(2)动态负载均衡算法
最少的链接方式(LeastConnection):传递新的链接给那些进行最少链接处理的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。
最快模式(Fastest):传递链接给那些响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
观察模式(Observed):链接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
预测模式(Predictive):BIG-IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(被BIG-IP 进行检测)
动态性能分配(Dynamic Ratio-APM):BIG-IP 收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。
·动态服务器补充(Dynamic Server Act.):当主服务器群中因故障致使数量减小时,动态地将备份服务器补充至主服务器群。
·服务质量(QoS):按不一样的优先级对数据流进行分配。
·服务类型(ToS): 按不一样的服务类型(在Type of Field中标识)对数据流进行分配。
·规则模式:针对不一样的数据流设置导向规则,用户可自行。
对应本地的应用交换,你们能够经过对上述负载均衡算法的理解, 结合实际的需求来采用合适你的负载均衡算法,咱们经常使用到的通常是最少链接数、最快反应、或者轮询,决定选用那种算法, 主要仍是要结合实际的需求。