load-balancing - HAProxy 通用计数器和棒表

标签 load-balancing haproxy rate-limiting

我正在尝试使用 HAProxy 进行速率限制。 我需要跟踪多个端点并单独限制它们。 到目前为止,我使用的是通用计数器。但是,只有 3 个,sc0 到 sc2。

在文档中,它提到这些计数器上的所有操作都需要一个可选的表参数,但不清楚我是否可以跟踪不同表上的不同内容,但使用相同的计数器。

换句话说:3 个通用计数器的限制是全局的还是每个粘性表的限制?

如果在正确的表格定义和跟踪指令之后,我愿意

sc1_inc_gpc0(表1)

(并且,在不同条件下)

sc1_inc_gpc0(表2)

然后有 2 个 acl 规则,例如 acl X sc1_get_gpc0(table1) gt 1 acl Y sc1_get_gpc0(table2) gt 1

这两个 acl 会独立工作,还是所有效果都会跟踪同一个计数器?

感谢大家的帮助! (如果您想知道:由于多种原因,目前我无法使用除 HAProxy 之外的其他解决方案进行速率限制)

最佳答案

查看源代码并测试后 self 回答。

  • 是的,可以在不同的 table 上使用相同的计数器
  • 此外,您还可以在构建时增加可用计数器的数量。默认值为 3,但当然可以设置为 10。然后是函数的通用版本,如 sc_gpc0_rate(<ctr>[,<table>])可以使用,将新计数器的索引作为第一个参数传递。

关于load-balancing - HAProxy 通用计数器和棒表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42643213/

相关文章:

deployment - Play Framework应用部署到多台服务器怎么办?

ruby-on-rails - rails 应用程序外部的数据库负载平衡?

elasticsearch - Elasticsearch 7.3 Rest客户端是否发现新节点?

c# - 如何在不达到限制的情况下使用受限的 API?

algorithm - 限制每个时间段的事件数

node.js - 如何在 Nest js 中使用 fastify-adapter 配置速率限制

mysql - PHP/MYSQL 脚本的负载平衡,无需大的代码更改

jms - 集群应用服务器中的JMS主题订阅者如何接收消息?

来自 HAProxy 或 Apache mod_proxy 的 OAuth token 验证

HAProxy:带重定向的 hdr_dom(主机)