zoukankan      html  css  js  c++  java
  • 关于haproxy负载均衡的算法整理

    目前haproxy支持的负载均衡算法有如下8种:

    1:roudrobin

    表示简单的轮询,每个服务器根据权重轮流使用,在服务器的处理时间平均分配的情况下这是最流畅和公平的算法。该算法是动态的,对于实例启动慢的服务器权重会在运行中调整。

    2:leastconn

      连接数最少的服务器优先接收连接。leastconn建议用于长会话服务,例如LDAP SQL TSE等,而不适合短会话协议。如HTTP该算法是动态的,对于实例启动慢的服务器权重倒在运行中调整。

    3:static-rr

      每个服务器极据权重轮流使用,类似roundrobin,但它是静 态的,意味着运行时修改概限是无效的。另外,它对服务器的数量没有限制。(该算法一般不用)

    4:source

      对于请求源ip地址进行哈希,用可用服务器的权重总数除以哈希值,根据结果进行分配。只要服务正常,同一个客户端IP地址总是访问同一个服务器。如果哈希结果随可用服务器数量而变化,那么客户端会定向到不同的服务器;(该算法一般用于不能插入cookie的Tcp模式。它还可以用于广域网上为拒绝使用会话cookie的客户端提供最有效的粘连;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据"hash-type"的变化做调整)

    5:uri

      表示根据请求的URI左端(问号之前)进行哈希,用可用服务器的权重总数除以哈希值,根据结果进行分配。只要服务器正常,同一个URI地址总是访问同一个服务器。一般用于代理缓存和反病毒代理,以最大限度的提高缓存的命中率。该算法只能用于HTTP后端;(该算法一般用于将同一个用户的信息发送到同一个后端服务器;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整)

    6:url_param

      在http get请求的查询串中查找<param>中指定的URL参数,基本可以锁定使用特制的URL到特定的负载均器节点的要求;(该算法一般用于将同一个用户的信息发送到同一个后端服务器;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整)

    7:hdr(name)

        在每个HTTP请求中查找HTTP头<name>,HTTP头<name>将被看做在每个http请求,并针对特定的节点;如果缺少头或者头没有任何值,则用roundrobin代替;(该算法默认是静态的,所以在运行时修改服务器的权重是无效的,但是算法会根据"hash-type"的变化做调整)

    8:rdp-cookie (name)

      为每个进来的tcp请求查询并哈希RDP cookie<name>;

      该机制用于退化的持久模式,可以使同一个用户或者同一个会话ID总是发送给同一台服务器。如果没有cookie,则使用roundrobin算法代替;(该算法默认是静态的,把以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整)

  • 相关阅读:
    spring框架里面处理中文匹配
    日常问题记录--使用fiddler自动响应jsonp结构的响应
    linux命令--pamp
    每天一个linux命令--nice命令
    阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据
    父子组件之间传递数据
    redux-API(二)
    redux数据流
    Redux 的基础概念-API
    react-redux要点梳理
  • 原文地址:https://www.cnblogs.com/bass6/p/6622382.html
Copyright © 2011-2022 走看看