通知haproxy的主管事件侦听器

supervisor-haprox的Python项目详细描述


主管haproxy

supervisor-haproxy是通知haproxy的主管事件侦听器 当程序状态改变时。

通过主动通知haproxy,我们可以避免haproxy向 正在关闭或即将关闭以进行维护的服务器。

事件侦听器监听主管PROCESS_STATE事件并发送 通过管理级stats套接字将状态更新为haproxy。

配置

安装eggsupervisor-haproxy时,管理器事件侦听器 创建为控制台脚本supervisor-haproxy。 它需要在管理器配置中进行配置,并且需要 haproxy统计socket和程序信息以便正确工作。

程序信息的格式是supervisorProgram:HaProxyBackend/HaProxyServer, 例如instance2:plone04/plone0402并告诉事件侦听器 supervisor中的程序是haproxy中的哪个后端服务器。

首先在haproxy配置中配置stats套接字

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/plone0102events=PROCESS_STATEprocess_name=HaProxy

使用buildout配置管理器的示例:

[supervisor]plugins +=
    supervisor-haproxyeventlisteners +=
    HaProxy PROCESS_STATE ${buildout:bin-directory}/supervisor-haproxy [tcp://localhost:8801 instance1:plone01/plone0101 instance2:plone01/plone0102]

开发/测试

对于开发和运行测试,您需要安装:

  • tox以便运行测试。
  • docker以便测试可以设置一个haproxy 用于测试。

安装toxdocker之后,您可以克隆存储库并运行 使用tox命令进行测试:

$ git clone git@github.com:4teamwork/supervisor-haproxy.git
$ cd supervisor-haproxy
$ tox

运行测试时,Docker中的haproxy将绑定到端口9902, 所以你需要确保这个端口是可用的。

更改日志

1.1.0(2017-06-09)

  • 避免连接到haproxy失败时出现高cpu负载问题。[乔恩]

1.0.0(2016-09-30)

  • 初步实施 [乔恩]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java岩石、布、剪刀程序,带文件输入   java迭代Hashmap中的值列表   数组不能正确循环   JavaHibernate:对于一个遥远的惰性依赖,有一个渴望的获取者吗?   交通阻塞下的java车辆路径选择   如何在java中创建布尔方法来检查添加到具有特定索引的arraylist的对象   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   为什么坐标有时相等,有时不相等?   java libgdx CameraInputController过于敏感,平移开始得太早   将C++排序函数移植到java   java应该是十进制的   swing Java JFrame中的所有内容都不可见   java使用数组中除一个元素以外的所有元素   从子类运行构造函数的Java