调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求 。这样可以保证处理能力强的服务器处理更多的访问流量 。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值 。
最少链接(Least Connections)
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上 。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载 。
加权最少链接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载 。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值 。
基于局部性的最少链接(Locality-Based Least Connections)
"基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统 。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器 是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务 器,将请求发送到该服务器 。
带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
"带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统 。它与LBLC算法的不同之处是它要维护从一个 目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射 。该算法根据请求的目标IP地址找出该目标IP地址对应的服务 器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一 台服务器,将该服务器加入到服务器组中,将请求发送到该服务器 。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的 程度 。
目标地址散列(Destination Hashing)
"目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空 。
源地址散列(Source Hashing)
"源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空 。
3.2 内核Layer-7交换机KTCPVS
在基于IP负载调度技术中,当一个TCP连接的初始SYN报文到达时,调度器就选择一台服务器,将报文转发给它 。此后通过查发报文的IP和TCP报文头地 址,保证此连接的后继报文被转发到该服务器 。这样,IPVS无法检查到请求的内容再选择服务器,这就要求后端服务器组提供相同的服务,不管请求被发送到哪 一台服务器,返回结果都是一样的 。但是,在有些应用中后端服务器功能不一,有的提供html文档,有的提供图片,有的提供CGI,这就需要基于内容的调度 (Content-Based Scheduling) 。
由于用户空间TCP Gateway的开销太大,我们提出在操作系统的内核中实现Layer-7交换方法,来避免用户空间与核心空间的切换和内存复制的开销 。在Linux操作系统的内核中,我们实现了Layer-7交换,称之为KTCPVS(Kernel TCP Virtual Server) 。目前,KTCPVS已经能对HTTP请求进行基于内容的调度,但它还不很成熟,在其调度算法和各种协议的功能支持等方面,有大量的工作需要做 。
虽然应用层交换处理复杂,它的伸缩性有限,但应用层交换带来以下好处:
- 相同页面的请求被发送到同一服务器,可以提高单台服务器的Cache命中率 。
- 一些研究[5]表明WEB访问流中存在局部性 。Layer-7交换可以充分利用访问的局部性,将相同类型的请求发送到同一台服务器,使得每台服务器收到的请求具有更好的相似性,可进一步提高单台服务器的Cache命中率 。
- 后端服务器可运行不同类型的服务,如文档服务,图片服务,CGI服务和数据库服务等 。
功能
【大多数程序员并不知道,负载均衡器LVS是个啥?】
推荐阅读
- 郑州|华润置地华东大区城市公司合并,裁员了吗?
- 梦见捉又粗又大的黄鳝,并杀了 梦见捉又粗又大的黄鳝又跑了
- 在北京徒步四个景区,痛并快乐着
- 浅谈Java并发编程之CAS算法策略
- php结合Redis实现投票项目并实时查看到投票情况
- 作为Java程序员,你知道 new 和 newInstance 的区别吗?
- 省林业厅我省制定并发布西藏茶园种植技术规范
- 东方华侨城邀请您选择绿茶并谈论茶
- 瑞士手表并非高不可攀,万元内高性价比瑞士腕表推荐
- 读诗就像喝杯文学茶这在生活中并不是件坏事作家迟子建来中国分享读诗的时间