Antipattern: richiama un proxy all'interno di un proxy utilizzando codice personalizzato o come destinazione

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Edge consente di richiamare un proxy API da un altro proxy API. Questa funzione è utile soprattutto se disponi di un proxy API che contiene codice riutilizzabile che può essere utilizzato da altri proxy API.

Antipattern

Richiamo di un proxy API da un altro utilizzando HTTPTargetConnection nell'endpoint di destinazione il codice JavaScript personalizzato comporta un hop di rete aggiuntivo.

Richiama il proxy 2 da Proxy 1 utilizzando HTTPTargetConnection

Il seguente esempio di codice richiama il proxy 2 dal proxy 1 utilizzando HTTPTargetConnection:

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

Richiama il proxy 2 dal proxy 1 dal codice JavaScript

Il successivo esempio di codice richiama il proxy 2 dal proxy 1 utilizzando JavaScript:

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

Flusso codice

Per capire perché questo ha uno svantaggio intrinseco, dobbiamo capire il percorso di una richiesta come illustrato nel diagramma seguente:

Figura 1: flusso di codice

Come illustrato nel diagramma, una richiesta attraversa più componenti distribuiti, tra cui router e processore di messaggi.

Negli esempi di codice precedenti, richiamare il proxy 2 dal proxy 1 significa che la richiesta deve essere instradata tramite il percorso tradizionale (ad es.Router > MP) in fase di runtime. Sarebbe come richiamare un'API da un client, effettuando così più hop di rete che aggiungono alla latenza. Questi hop vengono inutile, considerando che la richiesta Proxy 1 è già "raggiunto" il MP.

Impatto

Il richiamo di un proxy API da un altro proxy API comporta hop di rete non necessari, da un processore di messaggi a un altro.

Best practice

  • Utilizza il proxy concatenamento per richiamare un proxy API da un altro. Il concatenamento dei proxy efficiente in quanto utilizza una connessione locale per fare riferimento all'endpoint di destinazione (un altro proxy API).

    L'esempio di codice mostra il concatenamento del proxy utilizzando LocalTargetConnection nel tuo endpoint definizione:

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

    Il proxy API richiamato viene eseguito all'interno dello stesso processore di messaggi. di conseguenza, evita l'hop di rete, come mostrato nella figura seguente:

    Figura 2: flusso di codice con concatenamento del proxy

Per approfondire