通知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有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest