• 正文概述
  • GitHub – mariadb-corporation/glb:Galera Load Balancer – 一个简单的 TCP 连接代理和负载平衡库

    Name
    2 years ago
    13 years ago
    11 years ago
    last year
    last year
    13 years ago
    2 years ago
    17 years ago
    16 years ago
    6 years ago
    4 years ago
    4 years ago
    17 years ago
    12 years ago
    2 years ago
    17 years ago
    12 years ago
    12 years ago
    4 years ago
    12 years ago
    last year
    last year

    存储库文件导航

    GLB的

    (glbd 和 libglb:TCP 代理守护进程和负载均衡库合二为一

    版权所有 (C) 2007-2013 Codership Oy info@codership.com

    邮件列表:https://groups.google.com/forum/?fromgroups=#!forum/codership-team

    免責聲明:

    分发这个程序是希望它有用,但是 在法律允许的范围内,不作任何保证;甚至没有 适销性或特定用途适用性的默示保证。

    有关许可证详细信息,请参阅复制。

    大约:

    glbd 是一个简单的 TCP 连接平衡器,具有可扩展性和 考虑到性能。它的灵感来自,但与不同的是 功能仅限于平衡通用 TCP 连接。

    特征:

    • 后端服务器列表可在运行时进行配置。
    • 支持服务器“耗尽”,即不分配新连接 服务器,但不会杀死现有的服务器,等待它们结束 优雅。
    • 可以使用 Linux 2.6 及更高版本提供的 epoll API 进行终极版 路由性能。
    • glbd 是多线程的,因此它可以利用多个 CPU 内核。此外,如果您的 作系统不支持 epoll API,即使在 单核机器,因为它将按比例减少 poll() 开销,并且 可以将整体性能提高 2 倍或更多。
    • 可选的看门狗模块可以监控目的地并调整路由表 自然而然。

    libglb 是一个共享库,提供 0 努力连接平衡 任何通过重载使用标准 libc 调用的 Linux 应用程序 运行时的函数。没有其他程序功能受到影响,也没有 需要修改或重新编译程序。详情见下文。connect()

    平衡政策:

    GLB(glbd 和 libglb)支持五种平衡“策略”:

    a) 连接最少 – 新连接将定向到具有 最少连接(针对服务器“权重”进行了更正)。此策略是默认策略。

    b) 循环 – 每个新连接都被路由到下一个目的地 在列表中按循环顺序排列。

    c) single – 所有连接都路由到具有最高 重量可用。所有路由都将粘在该服务器上,直到它失败或 引入了具有严格更高权重的服务器。

    d) random – 连接在服务器之间随机分布。

    e) 源跟踪 – 源自同一地址的连接是 定向到同一服务器。有关此政策的详细信息,请参阅下文。

    -T|--top选项在 GLB 0.9.2 中引入。它限制了所有平衡 策略到具有最高权重的目标子集。例如,如果有服务器 配置权重 1 和 2,所有平衡将仅在服务器之间进行 重量为 2,只要其中至少有一个可用。

    最大并发连接数:

    可同时通过 glbd 打开的最大连接取决于 系统打开文件限制为 493,标准限制为 1024。如果需要,glbd 将尝试在有效 用户权限。对于非特权用户,通常为 4096,结果是 最多 2029 个连接。

    在 Linux 上,可以检查打开文件限制,如有必要,可以检查 增加在 。ulimit -n/etc/security/limits.conf

    命令行选项:

    请参阅该选项的输出。--help

    运行时管理:

    运行时管理可以通过 FIFO 文件或网络套接字完成。 默认情况下,网络套接字不打开;必须侦听的地址和端口 用选项显式指定。-c

    要添加/修改/删除后端服务器(目标):

    send server 规范,其中 weight 是守护进程的整数。连接按比例分布 到重量。默认权重为 1。权重为 0 表示耗尽服务器。 负权重表示完全删除服务器(与该服务器的所有连接 服务器立即关闭)。这适用于套接字连接和 FIFO 文件。<IP address>:<port>[:weight]

    要查看统计数据:

    向守护进程发送命令。这仅适用于套接字连接 因为它意味着回应。getstat

    例:

    (这里 glbd 在 127.0.0.1:4444 监听)

    $ echo "192.168.0.1:3307:5" | nc -q 1 127.0.0.1 4444
    OK
    $ echo "192.168.0.2:3307:5" | nc -q 1 127.0.0.1 4444
    OK
    $ echo "getinfo" | nc -q 1 127.0.0.1 4444
    Router:
    ----------------------------------------------------
       Address : weight usage conns
    192.168.0.1:3307 : 5.000 0.000 0
    192.168.0.2:3307 : 5.000 0.000 0
    ----------------------------------------------------
    Destinations: 2, total connections: 0
    

    usage这是一些关于目的地配备多少人员的无量纲指标 带连接(相对于重量)。范围从 0(完全未使用)到 1.0 (很忙)。路由器尝试在所有目标上保持相等。usage

    地址约定:

    所有网络地址都以 格式指定。 根据上下文,某些部分可以是可选的,在这种情况下,它们可以是可选的 省略。例如,可以指定要侦听客户端连接的地址 要么作为或仅 .在后一种情况下,glbd 将监听 所有接口上的客户端连接。后端服务器可以指定为 。在这种情况下,将使用传入端口号 对于值,1 将用于值。IP|HOSTNAME:PORT:WEIGHTHOSTNAME:PORTPORTHOSTNAME1,HOSTNAME2,HOSTNAME3PORTWEIGHT

    性能统计:

    GLB 允许使用命令通过控制套接字查询原始性能统计信息。客户端可以使用这些数据来获取有用的信息, 例如,每次 poll() 调用的平均读取次数。getstat

    $ echo "getstat" | nc -q 1 127.0.0.1 4444
    in: 6930 out: 102728 recv: 109658 / 45 send: 109658 / 45 conns: 0 / 4 poll: 45 / 0 / 45 elapsed: 1.03428
    

    统计行由以空格分隔的字段组成,以便于解析 脚本。添加了一些描述字段以帮助人类阅读。价值 字段都是偶数,如下所示:

    2 – 在传入接口(客户端请求)上接收的字节数

    4 – 从传入接口发送的字节数(服务器响应)

    6 – 通过调用传递的字节数recv()

    8 – 通话次数recv()

    10 – 通过调用传递的字节数(应等于 p.6)send()

    12 – 通话次数send()

    14 – 创建的连接数

    16 – 并发连接数

    18 – 返回的可读文件描述符数poll()/epoll_wait()

    20 – 返回的写入就绪文件描述符数poll()/epoll_wait()

    22 – 触发次数poll()/epoll_wait()

    24 – 自上次统计报告以来经过的时间(秒)

    除 16 和 24 之外的所有值都是自上次报告以来累积的总数。 为了获得一些可变速率,必须将其除以经过的时间。 在 32 位架构上,这些值存储在 4 字节整数中,并且可以 经过足够长的时间后溢出,因此该系列中的第一个统计报告 可能需要丢弃。

    源跟踪能力:

    GLB 具有简单的源跟踪功能,其中连接源自 从一个地址可以路由到同一目的地,随机选择 根据其重量在可用目的地之间。此类的一个限制 方案是,当目标列表发生变化时,目标选择新的 连接也会发生变化,而已建立的连接自然会保留 变。此外,当目标标记为不可用时,所有连接 将被路由到它将故障转移到另一个随机选择的目的地。 当原始目标可用时,将路由所有新连接 回到它。

    换句话说,源跟踪应被视为尽力而为的功能,并且 将最适合短期连接。

    看门 狗:

    (注意:这是一项正在进行的工作,功能和术语都不是 final。

    如果没有看门狗,GLB 只能通过 能够建立与目标的 TCP 连接。对于大多数用例,TCP 连接性检查不足。例如,对于 HTTP 服务器,重要的是 能够为网页提供服务,并为 DBMS 服务器提供服务 – 能够执行查询。 Watchdog 模块通过后端实现对目的地的异步监控 用于检查特定服务的可用性。

    看门狗通过一个选项启用。它的参数是一个字符串 包含后端 ID 字符串,后跟冒号和后端(可选) 配置选项。例如:-w|--watchdog

    $ glbd -w exec:"mysql.sh -utest -ptestpass" -t 2 3306 192.168.0.1 192.168.0.2
    

    这将初始化执行外部程序的后端。在这种情况下 它将执行脚本(可以在目录中找到 必须放在 ) 中,并提供参数以检查 MySQL 服务器 在 192.168.0.1 和 192.168.0.2(并行线程中)。通过服务器 address 添加到脚本中,后端将插入字符串作为第一个 参数,因此实际命令将是 在这种情况下执行如下所示:execmysql.shfiles/PATHexechost:port

    "mysql.sh 192.168.0.1:3306 -utest -ptestpass"
    

    检查间隔使用参数(小数秒,默认 1.0)设置-i|--interval

    目的地发现:

    如果目标可以提供有关集群其他成员的信息 如果提供了选项,则可用于自动填充看门狗目标列表。目前已知只有 MySQL/Galera 节点 为此,因此它是仅限 Galera 的选项。-D|--discover

    将 GLBD 作为“服务”运行:

    请参阅目录。READMEfiles/

    使用 LIBGLB:

    使用 libglb 需要设置 2 个环境变量:

    LD_PRELOAD=<path-to-libglb>

    GLB_OPTIONS='options string'

    • 允许以与命令行相同的方式向 libglb 指定 GLB 选项 GLBD 的参数。然而,它在选项及其价值方面是有限的 不能包含空格和逗号,短选项不能 串联的(即 应该作为 )。解析错误和 libglb 不支持的选项(如 )将被静默忽略。 特别是,不能以这种方式指定看门狗选项。 (请参阅下面的环境变量)-qri10-q -r -i 10-dGLB_WATCHDOG
    例:

    $ LD_PRELOAD=src/.libs/libglb.so 
    GLB_OPTIONS="--random 3306 192.168.0.1 192.168.0.2 192.168.0.3" 
    mysql -uroot -prootpass -h127.0.0.1 -P3306
    
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 76
    Server version: 5.5.28 Source distribution, wsrep_24dev.7.r3830
    ...
    

    其他 libglb 参数:

    如果情况不够(例如,看门狗选项需要 指定)下面有一个附加环境变量的列表(其中 优先于 )。但请注意,除此以外,所有这些选项目前都被视为已弃用。GLB_OPTIONSGLB_OPTIONSGLB_WATCHDOG

    GLB_WATCHDOG=<watchdog specification>

    解释方式与参数相同。--watchdog

    GLB_TARGETS=H1[:P1[:W1]],[H2[:P2[:W2]],...]

    是目标服务器的逗号分隔列表,其中客户端 必须分布式连接。

    GLB_BIND=<addr>

    其中的解释方式与 glbd 的参数相同。 每当应用程序尝试启动与此地址的连接时, 请求将被拦截,并建立与 根据平衡规则从列表中的服务器。<addr>LISTEN_ADDRGLB_TARGETS

    GLB_POLICY=single|random|source

    默认的 libglb 平衡策略是“round-robin”、“single”、“random”和 “源跟踪”策略可以使用变量指定。GLB_POLICY

    (在这种情况下,所有来自 此客户端将路由到同一随机目标,并故障转移到 如果主目标发生故障,则为另一个。因此,客户端-服务器亲和性是 实现,但是来自许多客户端的负载将分散到所有可用的客户端上 目的地。GLB_POLICY=source

    GLB_CONTROL=[IP:]PORT

    解释方式与 glbd 的参数相同。申请将 在指定地址打开套接字以侦听控制命令。由于 到图书馆功能仅限于通话,没有流量 statistics 或连接计数,因此命令是 noop,并且只打印出路由表。--controlconnect()"getstat""getinfo"

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » Galera Load Balancer – 一个简单的 TCP 连接代理和负载平衡库

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录