Servicio de alta carga. Jabón vs descanso

8

Tengo la tarea de hacer una API para Magento usando su implementación SOAP o REST.

He leído mucho sobre ambos servicios, también tengo experiencia con ellos. Pero no adentro high-loaded projects.

La tarea de este servicio proporcionará información adicional al cliente a través de SOAP o REST. He configurado ambos y todo está bien.

PERO, la pregunta es ¿qué sería mejor si tengo 100 clientes llamando a mi servicio por segundo, 200, 500, etc.?

Sé sobre los gastos generales de SOAP, pero también si uso REST necesito usar también oAuth, entonces, ¿qué caerá primero?

¿Alguna experiencia en eso?

sergio
fuente

Respuestas:

11

Deberá definir un caso de uso claro para obtener una respuesta específica a su pregunta. A menos que tengamos un caso de uso detallado aquí, me gustaría responder con consejos generales sobre eso:

SOAP vs REST SOAP y REST son dos formas de acceder a los servicios web. SOAP usa XML para sus solicitudes. REST se basa en solicitudes HTTP a través de URL y, por lo tanto, es realmente ligero en comparación con SOAP.

(Dis-) Ventajas de SOAP:

  • servicio web bien definido
  • tiene estándares preconstruidos (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • funciona bien en entornos empresariales (debido a los estándares)
  • Algunas herramientas pueden automatizarse mediante el uso de WSDL
  • peso pesado en comparación con REST

(Dis-) Ventajas de REST:

  • más fácil de usar
  • mas flexible
  • curva de aprendizaje más pequeña
  • eficiente / ligero en comparación con SOAP
  • sin estructura de servicio web definida (sin WSDL)

API SOAP de Magento vs API REST

Tenga en cuenta que no todas las características se implementan para la API REST.

Creé un pequeño script de prueba de rendimiento que no hace más que 10x10 solicitudes de inicio de sesión y endSession a través de SOAP API v1. No se realizó ninguna acción específica. 1 solicitud tomó entre 0,9 y 1,4 segundos con mi servidor web local.

Para comparar con el resto: una vez que su aplicación esté autorizada (donde necesita autorizar su aplicación una vez haciendo clic en "autorizar"), solo toma unos pocos milisegundos estar listo para realizar su solicitud después de obtener un token y un secreto: 2.0 -3.0 * 10 ^ -5 segundos localmente.

Pruebas de rendimiento

Para realizar una prueba de rendimiento que finalmente pueda responder a su pregunta, debe definir los requisitos.

Lo siguiente sería interesante:

  • ¿Se conectan una vez y realizan múltiples acciones o cada una de ellas se conecta para una sola acción?
  • ¿Qué tipo de solicitudes realizan? Agregar / actualizar productos, hacer pedidos, ...?
  • SOAP API v1, SOAP API v2 o SOAP v2 WSI vs REST?

Recursos

Esto también puede ser interesante para usted:

Anna Völkl
fuente
1
¡Gran respuesta! También hice una prueba, y tengo alrededor de ~ 0.4s para hacer solo oAuth y llamar a algún método que no hace nada, solo para probar. Entonces, la sobrecarga es grande, escribí el servicio REST en otro marco, pero uso Magento Db para manipular datos. gracias
sergio