Serviço de alta carga. Sabão vs Descanso

8

Eu tenho uma tarefa para fazer uma API para Magento usando sua implementação SOAP ou REST.

Eu li muito sobre os dois serviços, também tenho experiência com eles. Mas não dentro high-loaded projects.

A tarefa deste serviço fornecerá algumas informações extras ao cliente via SOAP ou REST. Eu configurei os dois e está tudo bem.

MAS, a pergunta é o que seria melhor se eu tivesse 100 clientes ligando para meu serviço por segundo, 200, 500 e assim por diante?

Eu sei sobre sobrecarga de SOAP, mas também se eu usar o REST, também preciso usar oAuth, então o que ocorrerá primeiro?

Alguma experiência nisso?

sergio
fonte

Respostas:

11

Você precisará definir um caso de uso claro para obter uma resposta específica à sua pergunta. A menos que tenhamos um caso de uso detalhado aqui, gostaria de responder com conselhos gerais sobre isso:

SOAP vs REST SOAP e REST são duas maneiras de acessar serviços da web. O SOAP usa XML para suas solicitações. O REST depende de solicitações HTTP via URL e, portanto, é realmente leve comparado ao SOAP.

(Des) Vantagens do SOAP:

  • serviço web bem definido
  • possui padrões pré-criados (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • funciona bem em ambientes corporativos (devido a padrões)
  • algumas ferramentas podem ser automatizadas usando o WSDL
  • pesado comparado ao REST

(Des-) Vantagens do REST:

  • mais fácil de usar
  • mais flexível
  • curva de aprendizado menor
  • eficaz / leve em comparação com o SOAP
  • nenhuma estrutura de serviço da web definida (sem WSDL)

API Magento SOAP vs API REST

Esteja ciente de que nem todos os recursos estão implementados para a API REST.

Criei um pequeno script de teste de desempenho que não faz nada além de solicitações de login e final de sessão 10x10 via SOAP API v1. Nenhuma ação específica foi executada. Uma solicitação levou entre 0,9 e 1,4 segundos com meu servidor da web local.

Para comparar com o restante: Depois que seu aplicativo é autorizado (onde você precisa autorizá-lo uma vez clicando em "autorizar"), leva apenas alguns milissegundos para estar pronto para executar sua solicitação depois de obter um token e um segredo: 2.0 -3,0 * 10 ^ -5 segundos localmente.

Teste de performance

Para realizar um teste de desempenho que possa finalmente responder à sua pergunta, você precisa definir os requisitos.

O seguinte seria interessante:

  • Eles fazem login uma vez e executam várias ações ou cada um deles faz login para apenas uma ação?
  • Que tipo de solicitação eles executam? Adicionando / atualizando produtos, fazendo pedidos, ...?
  • API SOAP v1, API SOAP v2 ou SOAP v2 WSI vs REST?

Recursos

Isso também pode ser interessante para você:

Anna Völkl
fonte
11
Ótima resposta! Também fiz um teste e tenho cerca de 0,4s para fazer apenas oAuth e chamar algum método que não faz nada, apenas para testar. Portanto, a sobrecarga é grande, escrevi o serviço REST em outra estrutura, mas use o Magento Db para manipular dados. obrigado
sergio