Baza wiedzy LINKSPOT › Pierwsze kroki z Comarch BI Point

Ograniczanie liczby zapytań (rate limiting)

Pierwsze kroki z Comarch BI Point · Opublikowano 2025-09-01

Od wersji Comarch BI Point 2025, w celu zwiększenia bezpieczeństwa i stabilności aplikacji BI Point, wprowadzony został mechanizm limitowania liczby zapytań (tzw. rate limiting).

Wszystkie limity mogą być w pełni konfigurowane z poziomu pliku config.json, w nowo dodanej sekcji RateLimitingConfiguration. Umożliwia to dostosowanie wartości progowych do specyfiki konkretnej instalacji. W ramach tej sekcji możliwe jest zdefiniowanie m.in.: maksymalnej liczby jednoczesnych zapytań w skali globalnej, limitu zapytań przypadających na pojedynczego użytkownika wraz z okresem odniesienia (np. na minutę), zapasowego limitu zapytań dla adresów IP oraz odpowiadającego mu okna czasowego.

1. EnableMetricsCollection

Włącza (true) lub wyłącza (false) zapisywanie w logach aplikacyjnych szczegółowych statystyk dotyczących działania limiterów. Jest to przydatne do diagnostyki i monitorowania obciążenia aplikacji.

2. AuthenticatedOptions

Definiuje, jak działa limit zapytań dla każdego zalogowanego użytkownika z osobna.

Parametr techniczny określający, na ile „kawałków” dzielone jest główne okno czasowe (TimeWindowMilliseconds) w celu płynniejszego przeliczania limitu. Zmiana tej wartości jest rzadko potrzebna i zalecana dla zaawansowanych użytkowników.

Określa, ile zapytań od jednego użytkownika może maksymalnie czekać w kolejce na przetworzenie, gdy RequestLimit zostanie osiągnięty. Dopiero po zapełnieniu tej kolejki system zacznie odrzucać nowe zapytania i zwracać błąd HTTP 429 (Too Many Requests).

Główny limit zapytań dla jednego użytkownika w zdefiniowanym „oknie czasowym” (TimeWindowMilliseconds). Po przekroczeniu tej liczby, kolejne zapytania od tego użytkownika nie są od razu odrzucane, lecz trafiają do specjalnej kolejki.

Określa, jak długie jest „okno czasowe”, w którym liczony jest limit zapytań. Wartość podawana jest w milisekundach. Po upływie tego czasu limit się „odświeża”.

Przykład

Wartość 60000 oznacza, że limit jest liczony w oknie 1-minutowym.

Definiuje, w jakiej kolejności będą przetwarzane zapytania czekające w kolejce:

0 – Od najstarszych: Standardowe zachowanie, zapytania są przetwarzane w takiej kolejności, w jakiej przyszły.
1 – Od najnowszych: Najnowsze zapytanie z kolejki jest brane do przetworzenia jako pierwsze.

Gdy użytkownik lub system przekroczy zdefiniowany limit, jego kolejne zapytania zostaną tymczasowo zablokowane. Aplikacja zwróci błąd HTTP 429 (Too Many Requests). Po stronie interfejsu użytkownika powinien pojawić się komunikat informujący o konieczności odczekania chwili przed ponowną próbą połączenia.

+ Mam problem z tym tematem Otwórz w portalu bazy wiedzy »