Servizio ad alto carico. Soap vs Rest


8

Ho il compito di creare un'API per Magento usando la sua implementazione SOAP o REST.

Ho letto molto su entrambi i servizi, ho anche esperienza con loro. Ma non dentro high-loaded projects.

L'attività di questo servizio fornirà alcune informazioni extra al client tramite SOAP o REST. Ho configurato entrambi e tutto è ok.

MA, le domande sono: cosa sarebbe meglio se avessi 100 clienti che chiamano il mio servizio al secondo, 200, 500 e così via?

Conosco l'overhead SOAP, ma anche se uso REST devo usare anche oAuth, quindi cosa cadrà per primo?

Qualche esperienza in questo?

Risposte:


11

Dovrai definire un caso d'uso chiaro per ottenere una risposta specifica alla tua domanda. A meno che non abbiamo un caso d'uso dettagliato qui, vorrei rispondere con un consiglio generale al riguardo:

SOAP vs REST SOAP e REST sono due modi per accedere ai servizi web. SOAP utilizza XML per le sue richieste. REST si basa su richieste HTTP tramite URL ed è quindi molto leggero rispetto a SOAP.

(Dis-) Vantaggi di SOAP:

  • servizio web ben definito
  • ha standard predefiniti (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • funziona bene in ambienti aziendali (grazie agli standard)
  • alcuni strumenti possono essere automatizzati utilizzando WSDL
  • dei pesi massimi rispetto al REST

(Dis-) Vantaggi di REST:

  • più facile da usare
  • più flessibile
  • curva di apprendimento più piccola
  • efficace / leggero rispetto a SAPONE
  • nessuna struttura di servizio web definita (no WSDL)

API SOAP Magento vs API REST

Tenere presente che non tutte le funzionalità sono implementate per l'API REST.

Ho creato un piccolo script di test delle prestazioni che non fa altro che richieste di login ed endSession 10x10 tramite SOAP API v1. Non è stata eseguita alcuna azione specifica. 1 richiesta ha richiesto tra 0,9 e 1,4 secondi con il mio server web locale.

Per confrontare con il resto: una volta che l'applicazione è stata autorizzata (dove è necessario autorizzare l'applicazione una volta facendo clic su "autorizza"), ci vogliono solo pochi millisecondi per essere pronti ad eseguire la richiesta dopo aver ottenuto un token e un segreto: 2.0 -3,0 * 10 ^ -5 secondi a livello locale.

Test delle prestazioni

Per condurre un test delle prestazioni che potrebbe finalmente rispondere alla tua domanda, devi definire i requisiti.

Quanto segue sarebbe interessante:

  • Effettuano il login una sola volta ed eseguono più azioni o ognuno di essi effettua il login per una sola azione?
  • Che tipo di richieste eseguono? Aggiunta / aggiornamento di prodotti, ordini, ...?
  • SOAP API v1, SOAP API v2 o SOAP v2 WSI vs REST?

risorse

Questo potrebbe anche essere interessante per te:


1
Bella risposta! Ho anche fatto un test e ho circa 0,4 secondi per fare solo oAuth e chiamare un metodo che non fa nulla, solo per testare. Quindi, l'overhead è grande, ho scritto il servizio REST in un altro framework, ma uso Magento Db per manipolare i dati. grazie
sergio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.