跳转到主要内容

一个简单、快速、纯Python负载均衡器

项目描述

PumpkinLB是一个快速的多进程TCP负载均衡器/端口转发器,兼容Linux、Cygwin和Windows环境。

处理

PumpkinLB监听运行其上的机器上的本地端口请求,并将它们分配给任意数量的工作者。

您可以使用它快速设置负载均衡器,例如从1个入口点到5个不同的Apache工作者,分布在各种服务器上。

每个传入端口由一个独立的过程等待,每个连接又是另一个过程,因此在高负载下表现良好。

请求通常在各个工作者之间轮询处理。如果后端工作者上的请求失败,它将在另一个随机工作者上重试,直到成功,并记录一条消息。

用法

通过运行PumpkinLB.py [cfgFile] 来执行

其中[cfgFile]是您的配置文件路径。包含一个示例“example.cfg”。

配置部分

配置文件被分割成多个部分,每个部分由[$SectionName]定义,后跟键值对格式的变量。

[options]

  • pre_resolve_workers=0/1 - 默认 1

    使用主机名定义的任何工作进程将在读取配置时进行评估。

    这更有利于节省每个请求的DNS查询,应启用

    除非您的DNS可能更改,并且您希望工作进程匹配更改。

  • buffer_size=N - 默认 4096

    默认的读写缓冲区大小(以字节为单位),用于套接字操作。4096是大多数情况下的良好默认值,但您可能能够根据您的应用程序进行调整。

[mappings]

  • localaddr:inport=worker1:port,worker2:port…

    监听由“localaddr”定义的接口上的“inport”端口。将任务分配给工作地址和端口。

    例如:192.168.1.100:80=10.10.0.1:5900,10.10.0.2:5900

  • inport=worker1:port,worker2:port…

    监听所有接口上的“inport”端口,并将任务分配给给定端口的指定工作地址。

    例如:80=10.10.0.1:5900,10.10.0.2:5900

以下是一个示例,监听本地子网上的80端口,并将任务分配给3个Apache服务器

80=192.168.1.100:80,192.168.1.101:80,192.168.1.102:80

优雅关闭

发送SIGTERM、SIGINT或按Ctrl+C将执行优雅关闭(它将等待最多6秒钟以完成任何活动请求,然后终止)。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

PumpkinLB-2.0.0.tar.gz (22.7 kB 查看哈希值)

上传时间 源代码

支持者: