HAProxy统计页面后端队列值的说明

如下图所示,我有一个HAProxy后端2台服务器,它们具有以下设置:

maxconn 64 check inter 5s fastinter 2s downinter 2s 

在这里输入图像说明

我的问题关于Queue 。 我怎样才能指定后端队列的限制? 为什么Backend在底部显示11的值,当api-1api-2分别显示2218 ? 数字11代表我的情况是什么?

问题1 /
正如Willy在这个线程中提到的: https ://www.mail-archive.com/[email protected]/msg21521.html,你不能为后端指定maxqueue,但是你可以为后端服务器指定。

首先让我们清楚一下队列:每个后端队列和每个服务器队列。 连接服务器持久性转到服务器(有问题)队列,其他连接转到后端队列。

当到达服务器maxqueue时,HAProxy文档http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#5.2-maxqueue表示

如果达到此限制,则下一个请求将被重新分派给其他服务器,而不是无限期地等待服务。 这将打破持久性,但可能允许人们在他们尝试连接的服务器正在死亡时快速重新login。

所以下一个请求在这种情况下不会丢失。

如果达到假设的后端maxqueue会有所不同,客户端可能会收到错误。 因此,为了避免这种情况,没有后端maxqueue的实现,但你仍然可以使用后端的规则来实现相同的行为,如下所示:

 backend foo tcp-request content reject if { queue ge 100 } 

问题2/
最大队列列告诉自上次HAProxy重新加载后达到的最大队列大小。
所以11是你的后端达到的最大队列大小。 这与服务器的最大队列大小不同,因为如前所述,后端队列和服务器队列是分开的。