2017-03-07 4 views
4

Ich versuche, HAProxy zur Ratenbegrenzung zu verwenden. Ich muss mehrere Endpunkte im Auge behalten und sie einzeln begrenzen. Bisher verwendete ich allgemeine Zähler. Allerdings gibt es nur 3 von ihnen, sc0 bis sc2.HAProxy Allzweck-Zähler und Stick-Tabellen

In der Dokumentation erwähnt es, dass alle Operationen auf diesen Leistungsindikatoren einen optionalen Tabellenparameter haben, aber es ist nicht klar, wenn ich verschiedene Dinge in verschiedenen Tabellen verfolgen kann, aber die gleichen Leistungsindikatoren verwenden.

Mit anderen Worten: ist das Limit von 3 allgemeinen Zählern global oder pro klebriger Tabelle?

Wenn nach entsprechender Tabellendefinition und Spur Anweisungen, ich

sc1_inc_gpc0(table1)

(und unter verschiedenen Bedingungen)

sc1_inc_gpc0(table2)

Und haben dann 2 acl Regeln wie acl X sc1_get_gpc0(table1) gt 1 acl Y sc1_get_gpc0(table2) gt 1

Werden die beiden acl s unabhängig arbeiten, oder würden sie alle den gleichen Zähler verfolgen?

Danke für alle Hilfe! (Falls Sie sich wundern: aus einer Reihe von Gründen konnte ich im Moment keine andere Lösung als HAProxy zur Ratenbegrenzung verwenden)

Antwort

5

Selbst beantwortet nach dem Betrachten des Quellcodes und Tests.

  • Ja, es ist möglich, den gleichen Zähler auf verschiedenen Tabellen Außerdem
  • zu verwenden, können Sie auch die Anzahl der verfügbaren Zähler zum Erstellungszeitpunkt erhöhen. Der Standardwert ist 3, aber er kann auf 10 festgelegt werden. Dann können generische Versionen der Funktionen wie sc_gpc0_rate(<ctr>[,<table>]) verwendet werden, wobei der Index des neuen Zählers als erstes Argument übergeben wird.