Antywzór: wywoływanie serwera proxy w ramach serwera proxy za pomocą kodu niestandardowego lub jako elementu docelowego

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Edge umożliwia wywoływanie jednego serwera proxy interfejsu API z innego. Ta funkcja jest przydatna zwłaszcza wtedy, gdy masz serwer proxy API zawierający kod wielokrotnego użytku, którego można używać przez inne serwery proxy API.

Antywzór

wywołanie jednego serwera proxy interfejsu API z innego przy użyciu protokołu HTTPTargetConnection w docelowym punkcie końcowym lub niestandardowy kod JavaScript spowoduje dodatkowe przeskoki sieciowe.

Wywołaj serwer proxy 2 z serwera proxy 1 za pomocą protokołu HTTPTargetConnection

Następujący przykładowy kod wywołuje serwer proxy 2 z serwera proxy 1 przez HTTPTargetConnection:

<!-- /antipatterns/examples/2-1.xml -->
<HTTPTargetConnection>
  <URL>http://myorg-test.apigee.net/proxy2</URL>
</HTTPTargetConnection>

Wywołaj serwer proxy 2 z serwera proxy 1 z kodu JavaScript

Następny przykładowy kod wywołuje serwer proxy 2 z serwera proxy 1 przy użyciu JavaScriptu:

<!-- /antipatterns/examples/2-2.xml -->
var response = httpClient.send('http://myorg-test.apigee.net/proxy2);
response.waitForComplete();

Przepływ kodu

Aby zrozumieć, dlaczego ma to nieodłączną wadę, musimy zrozumieć, jak przebiega prośba jak pokazano na tym schemacie:

Rys. 1: Przepływ kodu

Jak to widać na schemacie, żądanie obejmuje wiele rozproszonych komponentów, w tym routera i procesor wiadomości.

W powyższych przykładach kodu wywołanie serwera proxy 2 z serwera proxy 1 oznacza, że żądanie musi zostać przekierowane. tradycyjną trasą (np.Router > MP) w czasie działania. Jest to podobne do wywoływania interfejsu API z klienta, co powoduje liczne przeskoki sieciowe i zwiększa opóźnienie. Te przeskoki są niepotrzebne, ponieważ żądanie do serwera proxy 1 zostało już „osiągnięte” poparcie dla parlamentu.

Wpływ

Wywołanie jednego serwera proxy interfejsu API z innego serwera proxy powoduje niepotrzebne przeskoki sieciowe, musi zostać przekazane z jednego procesora wiadomości do innego.

Sprawdzona metoda

  • Użyj łańcucha serwerów proxy. służąca do wywoływania serwerów proxy interfejsu API z innych. Łańcuch łańcuchów proxy działa lepiej skuteczny, ponieważ wykorzystuje połączenie lokalne, aby odwoływać się do docelowego punktu końcowego (innego serwera proxy API).

    Przykładowy kod pokazuje łańcuch łańcuchów proxy za pomocą LocalTargetConnection w Twoim punkcie końcowym definicja:

    <!-- /antipatterns/examples/2-3.xml -->
    <LocalTargetConnection>
      <APIProxy>proxy2</APIProxy>
      <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
    

    Wywoływany serwer proxy interfejsu API jest uruchamiany w ramach tego samego procesora wiadomości. w efekcie pozwala uniknąć przeskok sieciowy zgodnie z tą ilustracją:

    Rysunek 2. Przepływ kodu z łańcuchem serwerów proxy

Więcej informacji