Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Jenkins api的haproxy负载平衡_Jenkins_Haproxy - Fatal编程技术网

基于Jenkins api的haproxy负载平衡

基于Jenkins api的haproxy负载平衡,jenkins,haproxy,Jenkins,Haproxy,使用Haproxy是否可以基于GET请求到特定url的输出实现负载平衡?这个用例是在一组jenkins机器之间进行负载平衡,并将下一个自动化作业路由到最不繁忙的服务器 例如,我可以点击这个url服务器-1/computer/api/json?pretty&tree=busyExecutors 其输出如下所示: { “总线执行器”:5 } 在这种情况下,我们有5个忙碌的执行者。 我希望Haproxy点击这个url,评估哪台服务器最不忙,并将下一个作业路由到那里。这听起来可能吗?实际上,输出和总线执

使用Haproxy是否可以基于GET请求到特定url的输出实现负载平衡?这个用例是在一组jenkins机器之间进行负载平衡,并将下一个自动化作业路由到最不繁忙的服务器

例如,我可以点击这个url服务器-1/computer/api/json?pretty&tree=busyExecutors

其输出如下所示:

{ “总线执行器”:5 }

在这种情况下,我们有5个忙碌的执行者。 我希望Haproxy点击这个url,评估哪台服务器最不忙,并将下一个作业路由到那里。这听起来可能吗?实际上,输出和总线执行器在这里是不相关的,我只是在寻找一种从jenkins服务器获取某种信息的方法,并从这些信息中获得负载平衡

我已经研究了balanceurl_参数和balanceuri,但它们都不是我真正想要的。我还测试了balance leastconn,它也不是我想要的

如果我完全不在这里,让我知道,如果有更好的办法,我洗耳恭听


谢谢

这是我在Jenkins内部要做的事情,因为它提供了关于哪些节点和执行器可用、它们有哪些标签以及每个作业应该在什么环境中运行的最佳信息。如果您想在“加载最少”的构建节点上显式运行构建,可以尝试。谢谢Christopher。是的,负载最少的插件看起来在大多数情况下都是一个很好的解决方案,但在这种情况下,我希望负载平衡几个相同的主插件而不是从插件。我已经确定这不是Haproxy可以做的事情,目前正在探索其他选择。看起来gearman可能是一个选项。这是我在Jenkins内部要做的事情,因为它提供了关于哪些节点和执行器可用、它们有哪些标签以及每个作业应该在什么环境中运行的最佳信息。如果您想在“加载最少”的构建节点上显式运行构建,可以尝试。谢谢Christopher。是的,负载最少的插件看起来在大多数情况下都是一个很好的解决方案,但在这种情况下,我希望负载平衡几个相同的主插件而不是从插件。我已经确定这不是Haproxy可以做的事情,目前正在探索其他选择。看来gearman可能是一个选择。