2017-03-07 13 views
4

我試圖使用HAProxy的進行限速。 我需要跟蹤幾個端點並單獨限制它們。 到目前爲止,我使用的是通用計數器。但是,它們只有3個,sc0到sc2。HAProxy的通用計數器和棍子表

在本文檔中,它提到了所有這些計數器的操作採取的可選表參數,但目前還不清楚,那麼,如果我可以跟蹤不同的表不同的事情,但使用相同的計數器。

換句話說:是3通用的限制計數器全球性的,或每粘性表?

如果經過適當的表定義和跟蹤指導,我做

sc1_inc_gpc0(table1)

(和不同條件下)

sc1_inc_gpc0(table2)

再有像 acl X sc1_get_gpc0(table1) gt 1 2個ACL規則 acl Y sc1_get_gpc0(table2) gt 1

這兩個acl是獨立工作的,還是他們都會跟蹤同一個計數器?

感謝您的幫助! (如果您想知道:由於許多原因,目前我無法使用與HAProxy不同的解決方案來限制速度)

回答

5

在查看源代碼和測試後自我回答。

  • 是的,它可以使用相同的計數器上的不同表
  • 此外,您還可以增加可用的計數器的數量在生成時。默認值是3,但確實可以設置爲10。然後可以使用像sc_gpc0_rate(<ctr>[,<table>])這樣的函數的通用版本,將新計數器的索引作爲第一個參數傳遞。