Konfigurowanie routera do ponownego nawiązywania połączeń z procesorem wiadomości

Edge dla chmury prywatnej w wersji 4.17.05

Konfigurowanie odpowiedzi routera, gdy procesor komunikatów jest niedostępny podczas kontroli stanu

Router co 5 sekund sprawdza stan procesora komunikatów, aby określić, czy może on obsługiwać żądania. Jeśli procesor komunikatów przestanie działać, router automatycznie przekieruje żądania do innego procesora komunikatów.

Możesz skonfigurować reakcję routera na awarię procesora komunikatów, ustawiając w routerze właściwość conf_load_balancing_load.balancing.driver.nginx.server.retry. Ta właściwość przyjmuje zestaw wartości rozdzielonych spacjami, które mogą obejmować:

  • off: wyłącza ponawianie próby, router zwraca kod błędu po otrzymaniu żądania.
  • http_599: (domyślna) jeśli router otrzyma odpowiedź HTTP 599 z procesora komunikatów, przekazuje żądanie do następnego procesora komunikatów.

    HTTP 599 to specjalny kod odpowiedzi generowany przez procesor komunikatów podczas wyłączania. Procesor komunikatów próbuje zrealizować wszystkie istniejące żądania, ale w przypadku nowych żądań odpowiada kodem HTTP 599, aby zasygnalizować routerowi, że ma ponowić żądanie na następnym procesorze komunikatów.
  • error: jeśli podczas nawiązywania połączenia z procesorem komunikatów, przekazywania do niego żądania lub odczytywania z niego nagłówka odpowiedzi wystąpi błąd, router przekazuje żądanie do następnego procesora komunikatów.
  • timeout: jeśli podczas nawiązywania połączenia z procesorem komunikatów, przekazywania do niego żądania lub odczytywania z niego nagłówka odpowiedzi upłynie limit czasu, router przekazuje żądanie do następnego procesora komunikatów.
  • invalid_header: jeśli procesor komunikatów zwrócił pustą lub nieprawidłową odpowiedź, router przekazuje żądanie do następnego procesora komunikatów.
  • http_XXX: jeśli procesor komunikatów zwrócił odpowiedź z kodem HTTP XXX, router przekazuje żądanie do następnego procesora komunikatów.

Aby skonfigurować router:

  1. Edytuj plik /opt/apigee/customer/application/router.properties (jeśli plik nie istnieje, utwórz go).
  2. Dodaj właściwość conf_load_balancing_load.balancing.driver.nginx.server.retry, jak pokazano poniżej:
    conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error
  3. Upewnij się, że plik właściwości należy do użytkownika „apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Uruchom ponownie router:
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart

Konfigurowanie limitu czasu routera podczas uzyskiwania dostępu do procesorów komunikatów w ramach żądania proxy interfejsu API

Router Edge ma wstępnie ustawiony limit czasu wynoszący 57 sekund, gdy próbuje uzyskać dostęp do procesora komunikatów w ramach obsługi żądania przez serwer proxy interfejsu API. Po upływie tego czasu router spróbuje połączyć się z innym procesorem komunikatów, jeśli jest dostępny. W przeciwnym razie zwróci błąd.

Do kontrolowania tego limitu czasu możesz używać 2 właściwości:

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout określa czas oczekiwania w sekundach dla pojedynczego procesora komunikatów. Wartością domyślną jest 57 sekund.
  • conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout określa łączny czas oczekiwania na wszystkie procesory komunikatów (w sekundach), gdy instalacja Edge ma wiele procesorów komunikatów. Domyślna wartość to bieżąca wartość conf_load_balancing_load.balancing.driver.proxy.read.timeout lub 57 sekund.

Aby skonfigurować router:

  1. Edytuj plik /opt/apigee/customer/application/router.properties (jeśli plik nie istnieje, utwórz go).
  2. Ustaw właściwości w sposób pokazany poniżej:
    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout=240
  3. Upewnij się, że plik właściwości należy do użytkownika „apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Uruchom ponownie router:
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart