supervisor事件监听器,用于通知HaProxy
项目描述
supervisor-haproxy
supervisor-haproxy 是一个 supervisor 事件监听器,用于在程序状态变化时通知 HaProxy。
通过主动通知 HaProxy,我们可以避免 HaProxy 向即将下线或即将进行维护的服务器发送请求。
事件监听器监听 supervisor 的 PROCESS_STATE 事件,并通过管理员级别的状态套接字将状态更新发送到 HaProxy。
配置
当安装 egg supervisor-haproxy 时,supervisor 事件监听器作为控制台脚本 supervisor-haproxy 创建。它需要在 supervisor 配置中进行配置,并且需要 haproxy 状态套接字和程序信息才能正确工作。
程序信息的形式为 supervisorProgram:HaProxyBackend/HaProxyServer,例如 instance2:plone04/plone0402,告诉事件监听器 supervisor 中的哪个程序对应于 haproxy 中的哪个后端服务器。
首先在 haproxy 配置 中配置一个状态套接字
global
stats socket ipv4@127.0.0.1:8801 level admin
然后在 supervisor 配置 中配置 supervisor haproxy 事件监听器
[eventlistener:HaProxy]
command = .../bin/supervisor-haproxy tcp://localhost:8801 instance1:plone01/plone0101 instance2:plone01/plone0102
events = PROCESS_STATE
process_name=HaProxy
使用 buildout 配置 supervisor 的示例
[supervisor]
plugins +=
supervisor-haproxy
eventlisteners +=
HaProxy PROCESS_STATE ${buildout:bin-directory}/supervisor-haproxy [tcp://localhost:8801 instance1:plone01/plone0101 instance2:plone01/plone0102]
开发和测试
为了开发和运行测试,您需要安装
安装 tox 和 docker 后,您可以克隆存储库并使用 tox 命令运行测试
$ git clone git@github.com:4teamwork/supervisor-haproxy.git
$ cd supervisor-haproxy
$ tox
在运行测试时,docker 中的 haproxy 将绑定到端口 9902,因此您需要确保此端口可用。
链接
版权
本软件包版权所有 4teamwork。
supervisor-haproxy 采用 GNU 通用公共许可证,版本 2。
变更日志
1.1.0 (2017-06-09)
解决连接 HaProxy 失败时高 CPU 负载问题。[jone]
1.0.0 (2016-09-30)
初始实现 [jone]
项目详情
supervisor-haproxy-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 96b4c9d553ac6bcc66ff2b9e99164f79f74e04de8fd7bd9328f754931e97f63d |
|
MD5 | 9fc93a2a0f86c9c78b54ec44fb5c7997 |
|
BLAKE2b-256 | e3af7910f3d6b7a37de8f8e78b427e97b0f205b6ef19f9b3ef858f7831f8dd14 |